5F~ IMAKE.SAVs[ IMAKE.SAV#BACKUP/LOG [...]*.*; IMAKE.SAV/SAVE JAMISON @Mu V5.5 _OPNDCE::  _$2$DIA23: V5.5-2 ~ 6*[IMAKE]BINARY.DIR;1+,V./@ 4-R0123 KPWO56`Z7 89G@HJICPP.EXEV IMAKE.EXE#W! IMAKE.RULES%W IMAKE.TMPL&WMAKEDEPEND.EXEkW+MAKEINCLUDE.COMY SITE.DEFZVMS.CFkZ*[IMAKE.BINARY]CPP.EXE;1+,V.0/@ 40,-V0123 KPWO,56vXc7'L^89G@HJV0D`0205XchBCPPV1.0CXc05-13  ! @ * ? ! VAXCRTL_001! LIBRTL_001O! MTHRTL_001vaxvmsvax11c__LINE____FILE__-rat=crrfm=varmrs=4096Can't open output file "%s"-rCan't open input file "%s"Inside #ifdef block at end of input, depth = %d%d errors in preprocessor %d error in preprocessor #%s %d "%s"lineassertdefineelifelseendifififdefifndefincludelinepragmaundefControl line "%s" within macro expansion#%s may not follow #elseToo many nested #%s statements#%s must be in an #ifPreprocessor assertion failure#pragma Illegal # command "%s"Unexpected text in #control line ignored#if, #ifdef, or #ifndef without an argument.HCannot open include file "%s"#include syntax errorFilename work buffer overflow%s%srC$LIBRARYC$LIBRARY:SYS$LIBRARY:1Too many include directories-S, too few values specified in %s-S, too many values, "%s" unused"%s" wasn't definedUnknown option "%s"The following options are valid: -C Write source file comments to output -Dsymbol=value Define a symbol with the given (optional) value -Idirectory Add a directory to the #include search list -N Don't predefine target-specific names -Stext Specify sizes for #if sizeof -Usymbol Undefine symbol Too many file arguments. Usage: cpp [input [output]]1__DATE__rarat=crrfm=varToo many arguments for macroStrange character after # (%d.)Redefining defined variable "%s"#define syntax errorIllegal #undef argumentMacro work area overflowMacro work area overflowRecursive macro definition of "%s"(Defined by "%s") %d"%s"Bug: Illegal __ macro "%s"Macro "%s" needs argumentsWrong number of macro arguments for "%s"Too many arguments in macro expansionend of file within macro argumentOut of space in macro "%s" arg expansionend of expressionvalid+-*/%<<>>&|^==!=<<=>=>&&||?:,unary +unary -~!()(none)charintfloatdoubleshortlongsignedunsignedmisplaced constant in #if#if value stack overflowIllegal #if lineOperator %s in incorrect contextexpression stack overflow at op "%s"unbalanced paren's, op is "%s"Misplaced '?' or ':', previous operator is %sillegal character '%c' in #ifillegal character (%d decimal) in #ifCan't use a string in an #ifdefinedBad #if ... defined() syntaxsizeof!=<>&|\= not allowed in #ifUnexpected \ in #if#if sizeof, unknown type "%s"#if ... sizeof: illegal type combination#if sizeof() error, no type specified#if ... sizeof: bug, unknown type code 0x%x#if ... sizeof() syntax errormulti-byte constant '%c' isn't portable%s by zero in #if, zero result assumedmoddivide#if bug, operand = %d.work buffer overflow doing %s #%s%sStrange character '%c' after #Strange character (%d.) after #Unterminated stringIllegal digit in octal numberWork buffer overflow: %sOut of memoryEOF in commentToo much pushback%sline %d, %s: cpp: %sfrom macro %s from file %s, line %d: %sSErrorIErrorSFatal errorSWarningIWarning  aaiiiYYA99IIQQQQ1)!!ppppx    % , 2 @7 > <1// ECCCA AB D  <^>SU>TݬݬPݬݬP1?Pߣ!ЬRݢ/>Peߣ2ߣ*ߣ#ݢ>PRR @>P`P ~R=P$ЬRݢ>ݢߣ;G;,=ߣWЬRݢ=PEdߣYݢ=P ݢ=ݢߣ[:,=ЬRݢe=edq= P,_=edmyoPPcR Rߣv:V=+==R3RRRæRR/== ,<ݏ<2P ^Y6WXVZT<U@[g e <<RբLТSS\Т\\SkRRS5<P&k k <S1PkS/<ݥ '< <RP4P\LdCP4P\LdC\ RP\#gRPRShfSSg\f q)R\1 SգR1g e v;];SգNУ\\PPУPP\kSS\ ;P&k k:\0Pk\;e :Re :R6Pr3S\cPRBdC\cPRBdCR1R 1\ e :R)PRBd j)PR1R 1BdSmSPP>.?PPAOPA3Aj?Pej:1FPjR],12PVRe+1PR1eR91PR 1e 9Rբ11P^Ѭ9ݬ9 ^RS9 f9M9\լNЬPPQPЬQQ\cPP\8P&c c8\s.Pc\89 8 ^VZY[8X&P PPˏPRBh P&P54f5z8)TPSRxRRRSTTS11Si11S-1SPP-iQyYIai?PަR`Pަ RXPަRPPަRHPަR@Pަ#R8Pަ&R0Pަ,R(Pަ3R Pަ;RPަ@RPަGRPSަMR R37PSRբߦN4i}SitRS/iSPP/QQ>Q^^^^^^^^^^Q^^^^^^^>^QQ(?Pj RjR1jRb$Pլ$SH S26 6׬Si11S-1 SPP-K;C{O{K[1P>?P#PRR "RPR +.PRR R1*w5PRbPPTDh bP@kCRbPPP@hbP@kCbGb""RTT,5PTR`Pՠ ݠ!5TR*P1Pϻ1 1P1PjTiRTR1d8jRbjTd1idi1i1PjTiRTR1dxߦw21PjRbRRi1PiWm"PUU U .0lWi#0TPTTR<1WPEk:U +TPTTRTW1TRT ijRb1i1P-O1!/1Pj RjRƐh1jRbSW!PUU U a/oPWi#L/TPTTR<1WPEk:U9*TPTTRTW1TRT ijRb1i1P-0 .1PiRjRƯS01;ijRbjRbRTRTTij1PPr 0cP2F+PRR -R)PR2R2+PRR R./S/ ' P /P^ETPSS S -wѬi"-QPQQR<1CAS(QPQQRPѬ1PRPRb-.9"-^S4T0PPRR<R"1R<>Rdy)P\\R"\P\&)P\\R\\l9Yd^Pd0(P\R"\\!Pd\3.z-^鱗UWլ[ݬP*RݢϷPݬ/Pݬ20PPARRgo/VެTbfPSdfPSSŐr-4d6PdbŮo/hPPRRgP^ЬRRݬPbPP<L^(P,/(`%/LLЬݬ.PЬRRR R.PLXV0P1WSCLЬ TddR譂X~ݭT.SSRbˏ?SS(TSST~ݭRO.TSSTTRbլCTSST~ݭR".TSSTTRb魀~ݭR-SCbPP^ݬ-PPPRݬ<~#RhP^ݬ<~#Ь9 ^R SߢO-P c\cޢ lc\cޢ^iW[-U YެY1ެZjn-X% +IRRRS-cЮ R֮ jTIdBd1/PRˏRTDe R~hPRRPPC4H1P?P1PSTddRRaRz R~hPdTdcc= Scc=c ާ$SPI~PRS!P 1SP=1FPRvR ߧ&)aRYSb1Pn1 P~TRc*RRV<QSQ2dRRQ_c[cRRRBeS>PPcRRRBe PR0RRPcRRRBeVPPT2dRRQc2dRRQ IߧClchSߧf]STddRRaRz R~hPdTdSP*SLJPݮǛǯ+*YY1Ѯ  "( P^ЬRb%PbPPaPz P~G*PbRb ^iS9\l.!l("PRP \lu\Rll!RR \l!!PR P\\ ߭)\R\"b߭t)P\)"^S)Y)Z)XTެnT1ެUХs)[)W])VDRbPP<81P?Ph*RRkP1Rgif1PRb>*RR(Pj,RkP]Rgif5.R(PQQкP ~Q(PRgifPЮP֮R@TT1-޼RЮTDbTP^iX^WUS@g1nP+PT PT PnФԤe   PSS(1ń Yń %iPSS)~Cg1Sń Rń  B ݮh'PV V\ R\RC-%Pݮ 'V iPSS,1_S)1 SPń CgC -PS hS1IS 1A?Z[&)Y&S#1h\R\R)RBgCPhh\R\R RBgCjPSCgRR1RSjkPSCgj1PSャY$1PCgR1lRPP8 P?PPA1IPA016?PS TVݮ \ń 0PL P\~i1P\\ń Pi\l1P~il1PS1PSVhRVP1hPR\ń 1RL P\PPbRhJ\\ń h\7\~jkP PjPhR  S  SSjkPSSS 1: hSRSR ShhRb Pń nNծդݤݮg$Pծդ ծդǪ'"ծ ݮ,$ɪ!^T°SݬRÄ .PdB #PR~RRÄ dЬR#P dRb~b<^U:TeSݬPePSRĄ 4SB F#PRPPcSeRRĄ eR^QR P\Lߢsd P\P^TvRݬ"PS SQ PQPċN ݬ "S ^ﱨT"R S PSPĤ SQS ^qU*VXZYƮWЬSjRjRSLj TjJŽULj R "!n}hRբjDŽ g У PP0h?PfI!fPhR1բ+ТPPTТTTf!fLPТ Rգ  PRR PiPRR R(&! #Pѣ DŽ 1S^ͦVXW0TPRoP\\ PgZP\\ \)  1rPĄ  ZĄ SĄ  C \ƀ{P\\k\U S PSPƤPSQS UaPU S PSPƤb1PSQS Ua~PLhA\ d\(R,P\)R 4VPR\,RG\ g\U S PSPƤPSQS UaaP\1P\ U RURƤ1oPUSU \c1]P^XrUЬR<~ТSTTZS1PP2PR1YRRvVRVV PP2PRRRń kB PWTPPZ:V!B P`PT~iWPPT2PB TiWT TZЬPȢPRPP2PR1Id|^ﻥVXS|RbȚY~P\\ Y\\ Y\ P\P\:YƛPTSTƵPȜY\~PL|WˏWTYTLhZPˏWTxTYPWP1\ W P\WURPRPLh P\bWTգT\T \ T1\#ˏUQTTPTTPPQQ1\ˏUQUTTTPPQQ1U1UbTTPP DJggggg*gQ.?P\1RУP\Lh%=PR10PRbbP@hDPRUTSϙPS1P^UvWXk PSS PSS  "PCgVV K PVHլ?S)ˏSRBRRhRSrPSŐPVA'S'ݬPȜPŶ/PV1P^PRRTR( PRBg+R_QPQQȜT( ZP)PP'P:ȜPVS5PȜ1SP1=PTS!1SPP!S ?PP<1P<]<]?PP\11P|a1PT=1PT=DP PTSS<P PPPT=HS<PPPPPTS0S|PPPPPT 1lPVP^XTY VP(1WPR1USR?PR1yR 1qR(>eP*1aeP)1VeP( -PeP)17WKPBiNCP8Ơ\լݬdcP\լլd0nPlWePR1PR*WPRR)1\l8PWRRlR2RPPRRPRPRPPN P\l WWWWRWWRwP\l,WSPSlWRR2RƜP\l2W~ȝPn2P^άPPPQPQQPP|^ VЬUU0 T1P PUUx UXTPUTSPURUˏRP@f R~PRRa R0RRRTTSRSPUPUu UUkSP^ WuFPXX\10PTTPPa>FNV^fnv1P?PU1=PU15P U1-P U1%P U1P U1P U1 PSUPRR0R9$Ra RfRAjRFaS]PxUUR90RV ˏRV VVU PRR0R9$Ra RfRA RFSdT0GT7BRUT0/T7*R&PxUU0TSSUB PTT0 T7R>TUPX'UPXU PRR';R7R 2լ R"xUURU PRR' RR yUP^WЬTѬ ѬtStRЬPPFJRZbb.>Rfz1cP?P1eSR1^PSR1VPSR1NPS,լ !Ѭ :VP6VV&R1ѬSR1zRP{SPQPPR1xSRR1SUxURR1PRUUSR1PSR1PSR1PURSUUR1URSUUR1URSUUR1URSUUR1URSUUR1URSUURrPURSUUR_PPRSPPRJPtRUPSUUR4RR/P*PRR#PSRSSRPݬARRTP^P P PP^\ @lC ^9WTVЬSS z PSdRPRPSa PSCfCfU2eSeSP~P0 ,g b^ETЬSR բCd5S PR'R PSCdSPRSP4^EUYV[Z P>&T2dRdRS~S0 , Pj,ݮ,@PWWPTŰS~S0ϴ ,GT\ݮ,\\\RPP\LSSUS1RPSjPSSeTRT0@ ,jRߥ f11RffSfuSP\TiSPSP$ŖQfQ0 ,u PSQSiTaP\\XiWSWS$ŖTfT0ϖ ,)1PWSWiXc1Pˏ\SC=ShSޥ%T\T)P kޥDT\T); kRf0\2lSlST~T0 ,  Rvf P<^əUЬSսS޼Rb PRRSHR CR?TR R޼P`R\ dP޼P`dPRRS R RoRS R޼ScPޥdS~S"< 8T2dRdRS~S0 , P^Y[ЬRЬSWXZ TPR.PPVQ.cPRBCs﮼U.ePePQ~Q0φ , kR06RcTPRRx RXTRcPRT$Re REW1W T1PTR.V1V T1PR+R- X11R01RPP0ddddddddaannnnnnniiiiii ?PPaGPa1?PZ PTRcXPR1PVW$Rl RL1Rcw1RL1RPPL Qiiiiiiii] Pb?PPlWPl 77777777+92?PV,VPW WPPRcPR1jPU.eReRS~S0^, kZTީxS~S=3P^TﲻSRPRP ĖQcQ0, RQRya<^ɕUݬ. PTT PSŰP~P0Ϣ,5 SRRI RP ^qUzXݬ VPVV PTŰS~S0?, TSh ԣЬWW PVVN PTŰP~P0, TRWR R|cԣhRShԸSP ^凜SݬPRðQ~Q0ϋ, RPP ^iZ޸WXgSTRѬRR[ PURSReeT~PePRBhޑBhV2fRfRU~U0, c[PgPPSPPTˏTUEoRѢTg2PYbRYSRSSP^uWUЬP` PRRU`ìPXXUˏUQARbSIѣU:ݬP)S+Pcbգ ݣS PcRbSլMXVV*PTǰQ~Q0,jTSbcSbUԣԣ ݬnSPP^V襁W˶ZHY[FXTyRPb\bl\\2\S1բT¢jjТ G3ݢ<~jPbݢТ ݢբ ݢ}RtPߵ\Ь1TPSբ1PТ PT TP jjТ \ԬS 例kSPS/1nkP*AkoU2e\e\P~P0G, J/Pgh/h*eP\g\\ h\\\PP C PB?PP*P*@."?PƾQ~Q"ϒiPP\\*1qP\\/1_kg\ h\ \\ 1\\\2\\LɴC1b\ Pg11P`S\WPP  1~U2eReRT~T0,U ų\PS S  SSPP ^SRb\b\P~P0b, e^9RݬPPݬ^PaPP^UWЬRgScbSݬ ݬgc ݬ ݬgcg Z爐Rբ/SSg0SP@c  g Т RcVPբݢgf@TTݢТPPSТSSgfT|P@d  g Т RP^Rݬݬ"P^Rݬݬ)ϹsP^Rݬݬ0ϕ,(P^uRݬݬ=m^YRݬݬFQ@@"d|tl LDt 4\<|t40 8 , t ~ @VAXCRTLLIBRTLMTHRTL~~~~~*[IMAKE.BINARY]IMAKE.EXE;1+,#W!./@ 4-V0123 KPWO56`Z2Wc7S^89G@HJ 0D`02051Wc2hIMAKEV1.0Z1Wc05-13    ? ! VAXCRTL_001! LIBRTL_001O! MTHRTL_001cpp-I.-Dvms-Dvaxcppmmssys$scratch:imake_Imf.tmp;sys$scratch:imake_IIf.tmp;sys$scratch:imake_Icp.tmp;Makefile.mmsImake.tmpl-fMAKE=%sMAKEFILE=%sCannot convert cpp/make arg's to VMS-style.Cannot write stdout.Signal %d.IMAKEINCLUDEEnvironment var IMAKEINCLUDE %s must begin with -IIMAKECPPIMAKEMAKEOut of internal storage.Out of internal storage.imakeNo description arg after -f flag No description arg after -T flag Cannot open %s.ImakefileimakefileNo description file.imakefileImakefile.%s: imakeErrno value returned '%d' Stop. %s wbmrs = 1024Cannot create temporary file %s.#define IMAKE_TEMPLATE "%s" #define INCLUDE_IMAKEFILE "%s" #include IMAKE_TEMPLATE %s Unable to spawn C pre-processor, VMS err %%x%xC pre-processor returned VMS err %%x%x .wCannot create temporary file %s.FILE ORGANIZATION sequential RECORD FORMAT stream_lf CONVRT/FDL=SYS$INPUT: %s %sUnable to spawn Convert utility, VMS err %%x%xConvert utility returned VMS err %%x%x .r+Cannot open temporary cpp file %s.%s Unable to spawn MMS, VMS err %%x%x .MMS returned VMS err %%x%x .Cannot open %s for input.Cannot read all of %s:includedefineundefifdefifndefelseendififwCannot open %s for write. /**/-D/DEFINE=(-D/DEFINE=)/DEFINE=)-I/INCLUDE=(-I/INCLUDE=)/INCLUDE=)line cannot read %s w+# Makefile generated by imake - do not edit! # %s $XConsortium: imake.c,v 1.51 89/12/12 12:37:30 jim Exp $## The cpp used on this machine replaces all newlines and multiple tabs and# spaces in a macro expansion with a single space. Imake tries to compensate# for this, but is not always successful.#%s Cannot write to %s.Cannot allocate %d bytes /MACRO=(/ignore=error/noaction/descrip=Unknown '-' qualifier for make utility.MAKEFILE=MAKEFILE="%s"="%s",MAKEFILE=MAKEFILE=MAKE=MAKE="%s"="%s",MAKE=MAKE= /MACRO=)/MACRO=)LNM$FILE_DEV!omzR7^;[VZRXW_SSݬݬ"k= Pk< 4…Yhf1Z=UVTK ghhgTUg1gfPfY@jfP@jYhf1Z=UVTK ghhgyTUgl1g_:fPfY@jfP@j ˆ6Yhf1Z=UVTK ghhgTUg1gfPfY@jfP@jkYhf1Z=UVTK g|hhgiTUg\1gO*fPfY@jfP@jjW P œ^ݮ L P  P^UWTV|~ެScc<~^PR+dRKc<~3PRRbSRS g4,gRSg1gP^ rsP ^STUhRdPЬQPWQVK eDdde1VWe$1e^%XSYHR[ZVc\Li cc\Lih\Lhh\L߭P1Э\l-\lIZUTK j^kkjKTUj>1j1 ЭWkh1ZWUpTK jkkjTUj1jh\hWLh\L1UЭ\l v\P\`ЭWkh1JWTp\; jek kje\Tje1jeh\hWLOh\LE֭1v߭*RPЭ߭3:PЭP<P ^S Rc1V=#cPcЬ@P@} ^SRc1pWcPcЬ@eP@Y^ITYsR8X5[kq׬լ1xZPЬV-1fSWWD*SUkd1 pWjdPdU@hdP@h1PWI*SUkd1 pWjdPdU@hdP@h1WPWf6 SM1>P׬Vլ ™wjм(1WsJ-QPSQQ PѬ-׬Vм1PWeQSQQ1WT6 S1P׬Vլ ¼šjм\jPWv [Yki1 V=jiPiS@YiP@O-fSki1 V=jiPiS@*iP@ ׬լ1)^]RЬS"SPTXS½mIPPT.PT5\~ IMAKE.SAV#W!V[IMAKE.BINARY]IMAKE.EXE;1mPTeЬP^ݬ^STOR d;aYd ݬݬd1^ISTռЬRb:dRռ>ݤ^VxWyXSUg9Pg?P\C@gPT hNoTRb\ÍTbíTbT\f%RPLebb\\fP|~|~߭|~|~ PPPݭg)$g$P\ h&G\RbM\br\bt\b|\b\hhàP|~|~߭|~|~ PPü'ݭh]PR hRR= ^ESRcPcc:<|~|~߭|~|~ PP>lPݭcV<^WTYЬRRnRuPX RĀXCVVPSijUVUS[ݭ[XPRRݬĚXЭRBk[UUZe1I Ve#11U[ 1#URb b  Rb b RScP&P !P P ScPP  P P cXcıRfP1ĹRfP1RfP1RfP1RfP1RfPvRfPiRfP\Y7gP8 PgPng PY gYZU~Z Y UZXcUe1YYZU~Z Y nP< ^USެTdެRb?PQݭPSPSP(eS߭bݭ(b M dbP5 |^wUL Tݬ : PVScRRRBdcPScPPP@dc)SV$V f:ݬa PV~P 1E PV1& V! PR^% @SRbPPP@dbPbPPP@db,cRV V PR P)@ P P 'm PV1*N 5VI PR^M @SRbPPP@dbPbPPP@db,cRV 5V PR P)@C P8 P  |^)U TVЬRb#VRSc SNS[ PScPPRBd(PScPPP@dcP  c"PЬS1c  PSc cQPPRBdP!$()_.QQR1cnQnPPRBdPn$n(n) n_n.QQRAScRPPP@dP!$()_.RRPcPPRBdPScPPP@dc:c=Sc=fff+&ЬRb b  Rb b RݬFЬP` PP`PެRPb` ` PPb ` ` `- `\ЬRbRbRެSRcb b RRc b b RbPPPPP^RQQPPP@PQ$Q(Q) Q_Q.RRP|<^U2T1|~ЬRR2bR ~VVPSųPVP~SSݭݤмR ~PTJ |~ެVfScR ~ISdݬugSxśŕSgޤRbPbśfMRbФSS 0c@SQa@ SPQS`Sc  PSS ФRRSPPRPPRSRP^=Rݬݬ ݬPŸB ^SݬFPRóQݬQRP^P^a|^VЬSS#PUUPTƳPUPTRSRRPP^3[dRSUk1pWokTkUDkP@Uk1pW7kTkUDkP@ެnоUeߣ(0!VXFeT1_-U"W ZHYXTߣ(eX1Pd-{TdPPfN^^*^.^^>^^^***>PJ?P1ߣ(e1Pߣ(e1Pߣ(eX1=1P*gPT jP*IgTP~?4ie_PYgPTSjP*pgTP~j_iePvߣ(eTߣ(exߣ(eVFT1P)@ƒPzPߣ(ޣ(2P^STÌ ÍݬCPЬԭޭ>Ȱ̰Ξ(>ԭ؟쟭P22P@(2PPPPR(RRPP@@ |l$t$l<|DtLD, , 8 t 0 @VAXCRTLLIBRTLMTHRTL0000*[IMAKE.BINARY]IMAKE.RULES;1+,%W.p/@ 4bpn-V0123KPWOo56'7j[^89G@HJ /* Imake.rules ** Imake Rules file */ /* Copyright (c) Digital Equipment Corporation, 1991 ** All Rights Reserved. Unpublished rights reserved ** under the copyright laws of the United States. ** ** The software contained on this media is proprietary ** to and embodies the confidential technology of ** Digital Equipment Corporation. Possession, use, ** duplication or dissemination of the software and ** media is authorized only pursuant to a valid written ** license from Digital Equipment Corporation. ** ** RESTRICTED RIGHTS LEGEND Use, duplication, or ** disclosure by the U.S. Government is subject to ** restrictions as set forth in Subparagraph (c)(1)(ii) ** of DFARS 252.227-7013, or in FAR 52.227-19, as ** applicable. ** ** FACILITY: ** ** Customized Imake for Portable DTM effort ** ** ABSTRACT: ** ** This file contains the high-level rules used to specify ** target creation of various build-able objects. This file ** works closely with Imake.tmpl and the platform specific ** definition files (vms.cf & ultrix.cf). ** ** AUTHORS: ** ** Kenneth B. Miller ** ** ** CREATION DATE: 19 November 1990 ** **/ /* * Warning, when defining rules: make sure you don't include both a trailing * backslash and double ampersand backslash or else you will get an extra * backslash in the Makefile. Also, don't forget to do both the Ultrix * and VMS equivalent (make & mms). * * These macros are defined for the various templates and Imakefiles (for * a list of the applicable make variables, see the template files): * * NormalLibraryTarget (lib,objlist) * SimpleProgramTarget (program) * ProgramTarget (program,objlist) * ComplexProgramTarget (program) * LibProgramTarget (program,lib) * DWProgramTarget (program) * XMProgramTarget (program) * XM2ProgramTarget (program,lib) * CCRProgramTarget (program) * XTrapProgramTarget (program) * XDtProgramTarget (program) * XDtUiProgTarget (program,obj1) * DmObjectTarget (object) * DmProgramTarget (program,objlist,liblist,libdepends) * DmDCLTarget (includefile, table) * UiProgramTarget (program,object,object2) * TmServerProgramTarget (program) * IDLTarget (idlsrc) * LEXTarget (lexsrc) * TILTarget (tilobj,options,tilsrc) * TmTestProgram (program,objlist) * CiProgramTarget (program,objlist) * TestProgramTarget (program,objlist) * SimpleTestProgramTarget (program) * TestModuleTarget (module) * CatFileTarget (msg_file,src_files) * HelpFileTarget (hlp_file) * RunoffHelpTarget (rnh_file) * MessageFileTarget (msg_file) * HeaderFileTarget (sdl_file) * SaberProgramTarget (program,etc.) * RemoveTargetProgram (program) * FetchListTarget (filelist) * ScaLibraryTarget (directory,scalist) * ScaHelpTarget (directory,module) * ScaLseTarget (directory,module) * ScaInternalsTarget (directory,module) * DependDependency () * RegDependTarget (component,modulelist) * DependTarget (component) * CleanTarget (target) * CleanAllTarget (list) * InstallTarget (target,dest) * TagsTarget () * BuildMakefileTarget (imakefile,imakeflags) * MakefileTarget () * AllTarget (depends) * LinkSourceFile (src,dir) * LinkFileList (step,list,sub) * FirstListTarget (firstlist) * InstallManPageLong (file,destdir,dest) * InstallManPage (file,dest) * BuildIncludeFileTarget (component) * * * The general linking for building programs is: * * program-objects programlibs syslibs EXTRA_LIBRARIES systemlibs\ * EXTRA_LOAD_FLAGS * * where programlibs is LOCAL_LIBRARIES for ComplexProgramTarget * and EXTRA comes with syslibs from the LDLIBS */ /* * NormalLibraryTarget - generate rules to create a library. */ #ifndef NormalLibraryTarget #ifndef vms #define NormalLibraryTarget(libname,objlist) @@\ AllTarget(lib#libname.$(LIB)) @@\ @@\ lib#libname.$(LIB): objlist @@\ $(RM) $@ @@\ $(AR) $@ objlist @@\ $(RANLIB) $@ @@\ @@\ clean:: @@\ $(RM) lib#libname.$(LIB) #else /* vms */ #define NormalLibraryTarget(libname,objlist) @@\ AllTarget(lib#libname.$(LIB)) @@\ @@\ lib#libname.$(LIB): lib#libname.$(LIB)(objlist) @@\ continue #endif /* vms */ #endif /* NormalLibraryTarget */ /* * XTrapLibraryTarget - generate rules to create a library. */ #ifndef XTrapLibraryTarget #ifndef vms #define XTrapLibraryTarget(libname,objlist) @@\ AllTarget(lib#libname.$(LIB)) @@\ @@\ lib#libname.$(LIB): objlist @@\ $(RM) $@ @@\ $(AR) $@ objlist @@\ $(RANLIB) $@ @@\ @@\ clean:: @@\ $(RM) lib#libname.$(LIB) #else /* vms */ #define XTrapLibraryTarget(libname,objlist) @@\ AllTarget(decw$#libname#libshr.exe) @@\ @@\ lib#libname.$(LIB): lib#libname.$(LIB)(objlist) @@\ continue @@\ decw$#libname#libshr.exe: lib#libname.$(LIB) lib#libname.opt @@\ RemoveTargetProgram($@) @@\ $(LINK) /exe='f$parse("$@")' /SHARE/NOTRACE/NOMAP\ @@\ $(LDOPTIONS) $(EXTRA_LOAD_FLAGS)\ @@\ lib#libname.$(LIB)/lib/inc=lib#libname#xfer,\ @@\ lib#libname.opt/opt @@\ @@\ map:: @@\ $(LINK) /exe=_NL:/map=decw$#libname#libshr.map/full $(LDOPTIONS)\ @@\ $(EXTRA_LOAD_FLAGS)\ @@\ lib#libname.$(LIB)/lib/inc=lib#libname#xfer,\ @@\ lib#libname.opt/opt @@\ @@\ clean:: @@\ $(RM) lib#libname.$(LIB) @@\ $(RM) decw$#libname#libshr.exe #endif /* vms */ #endif /* XTrapLibraryTarget */ /* * SimpleProgramTarget - generate rules to make target from a single * object. */ #ifndef SimpleProgramTarget #ifndef vms #define SimpleProgramTarget(program) @@\ program#$(EXE): program.$(OBJ) @@\ RemoveTargetProgram($@) @@\ $(CC) -o $@ program.$(OBJ) $(LDOPTIONS) $(EXTRA_LOAD_FLAGS) @@\ @@\ map:: @@\ $(CC) -o /dev/null -m >program.map\ @@\ program.$(OBJ) $(LDOPTIONS) $(EXTRA_LOAD_FLAGS) @@\ @@\ clean:: @@\ RemoveTargetProgram(program#$(EXE)) #else /* vms */ #define SimpleProgramTarget(program) @@\ program#$(EXE): program.$(OBJ) @@\ @- imaketmp := $(OPTIONFILE) @@\ @- if imaketmp .NES. "" then - @@\ if f$search(f$parse(imaketmp)) .eqs. "" then - @@\ echo "WARNING!!! First Type: Make opt" @@\ RemoveTargetProgram($@) @@\ $(LINK) /exe='f$parse("$@")' $(LDOPTIONS) \ @@\ $(EXTRA_LOAD_FLAGS) program.$(OBJ)\ @@\ $(VMSOPTIONLINK) @@\ @@\ map:: @@\ $(LINK) /exe=_NL:/map=program.map/full $(LDOPTIONS)\ @@\ $(EXTRA_LOAD_FLAGS) program.$(OBJ)\ @@\ $(VMSOPTIONLINK) @@\ @@\ clean:: @@\ RemoveTargetProgram(program#$(EXE)) #endif /* vms */ #endif /* SimpleProgramTarget */ /* Take a program name and a list of object modules, build them, and link * tham all together. Not too tough. */ #ifndef ProgramTarget #ifndef vms #define ProgramTarget(program,objlist) @@\ /* Program target not implemented for ultrix */ #else /* vms */ #define ProgramTarget(program,objlist) @@\ program#$(EXE): objlist $(OPTIONFILE) @@\ @- imaketmp := $(OPTIONFILE) @@\ @- if imaketmp .NES. "" then - @@\ if f$search(f$parse(imaketmp)) .eqs. "" then - @@\ echo "WARNING!!! First Type: Make opt" @@\ RemoveTargetProgram($@) @@\ $(LINK) /exe='f$parse("$@")' $(LDOPTIONS)\ @@\ $(EXTRA_LOAD_FLAGS) objlist \ @@\ $(VMSOPTIONLINK) @@\ @@\ map:: @@\ $(LINK) /exe=_NL:/map=program.map/full $(LDOPTIONS)\ @@\ $(EXTRA_LOAD_FLAGS) objlist \ @@\ $(VMSOPTIONLINK) @@\ @@\ clean:: @@\ RemoveTargetProgram(program#$(EXE)) #endif /* vms */ #endif /* ProgramTarget */ #ifndef VMSOptionFile #ifndef vms #define VMSOptionFile( program) @@\ /* Program target not implemented for ultrix */ #else /* vms */ #define VMSOptionFile(program) @@\ opt:: vmsoptfile linkoptions @@\ @- echo "Created VMS Options file - program.opt" @@\ @@\ vmsoptfile:: @@\ @- imaketmp := program.opt @@\ @- copy/nolog/overlay _NL: 'imaketmp' #endif /* vms */ #endif /* VMSOptionFile */ #ifndef VMSLinkOption #ifndef vms #define VMSLinkOption(program,linkoption) @@\ /* Program target not implemented for ultrix */ #else /* vms */ #define VMSLinkOption(program,linkoption) @@\ linkoptions:: @@\ @- optfile :== program.opt @@\ @- open/append optfd 'optfile' @@\ @- write optfd linkoption @@\ @- close optfd #endif /* vms */ #endif /* VMSLinkOption */ /* * Take a program name, the *main.c and the *struc.c from uigen, and * an object library of UI files and link them all together. */ /* * ComplexProgramTarget - generate rules for compiling and linking the * program specified by $(OBJS) and $(SRCS), installing the program and its * man page, and generating dependencies. It should only be used in * Imakefiles that describe a single program. */ #ifndef ComplexProgramTarget #ifndef vms #define ComplexProgramTarget(program) @@\ PROGRAM = program @@\ @@\ AllTarget(program) @@\ @@\ program#$(EXE): $(OBJS) $(DEPLIBS) @@\ RemoveTargetProgram($@) @@\ $(CC) -o $@ $(OBJS) $(LDOPTIONS) $(LOCAL_LIBRARIES) $(LDLIBS) $(EXTRA_LOAD_FLAGS) @@\ @@\ DependTarget(program) @@\ @@\ map:: @@\ $(CC) -o /dev/null -m >program.map\ @@\ $(OBJS) $(LDOPTIONS) $(LOCAL_LIBRARIES) $(LDLIBS) $(EXTRA_LOAD_FLAGS) @@\ @@\ clean:: @@\ RemoveTargetProgram(program#$(EXE)) #else /* vms */ #define ComplexProgramTarget(program) @@\ PROGRAM = program#$(EXE) @@\ @@\ AllTarget(program#$(EXE)) @@\ @@\ program#$(EXE): $(OBJS) $(DEPLIBS) @@\ RemoveTargetProgram($@) @@\ $(LINK) /exe='f$parse("$@")' $(OBJS)\ @@\ $(LDOPTIONS) $(LOCAL_LIBRARIES) $(LDLIBS) $(EXTRA_LOAD_FLAGS) @@\ @@\ DependTarget(program) @@\ @@\ map:: @@\ $(LINK) /exe=_NL:/map=program.map/full $(OBJS)\ @@\ $(LDOPTIONS) $(LOCAL_LIBRARIES) $(LDLIBS) $(EXTRA_LOAD_FLAGS) @@\ @@\ clean:: @@\ RemoveTargetProgram(program#$(EXE)) #endif /* vms */ #endif /* ComplexProgramTarget */ /* * LibProgramTarget - generate rules to make target from a single * object and one object library. */ #ifndef LibProgramTarget #ifndef vms #define LibProgramTarget(program,library) @@\ program#$(EXE): program.$(OBJ) lib#library.$(LIB) @@\ RemoveTargetProgram($@) @@\ $(CC) -o $@ program.$(OBJ) lib#library.$(LIB)\ @@\ $(LDOPTIONS) $(EXTRA_LOAD_FLAGS) @@\ @@\ map:: @@\ $(CC) -o /dev/null -m >program.map\ @@\ program.$(OBJ) lib#library.$(LIB)\ @@\ $(LDOPTIONS) $(EXTRA_LOAD_FLAGS) @@\ @@\ clean:: @@\ RemoveTargetProgram(program#$(EXE)) #else /* vms */ #define LibProgramTarget(program,library) @@\ program#$(EXE): program.$(OBJ) lib#library.$(LIB) @@\ RemoveTargetProgram($@) @@\ $(LINK) /exe='f$parse("$@")' $(LDOPTIONS)\ @@\ $(EXTRA_LOAD_FLAGS) program.$(OBJ),\ @@\ lib#library.$(LIB)/lib @@\ @@\ map:: @@\ $(LINK) /exe=_NL:/map=program.map/full $(LDOPTIONS)\ @@\ $(EXTRA_LOAD_FLAGS) program.$(OBJ),\ @@\ lib#library.$(LIB)/lib @@\ @@\ clean:: @@\ RemoveTargetProgram(program#$(EXE)) #endif /* vms */ #endif /* LibProgramTarget */ /* * DWProgramTarget - generate rules to make a DECwindows target from a single * object. */ #ifndef DWProgramTarget #ifndef vms #define DWProgramTarget(program) @@\ program#$(EXE): program.$(OBJ) @@\ RemoveTargetProgram($@) @@\ $(CC) -o $@ program.$(OBJ) $(LDOPTIONS)\ @@\ $(EXTRA_LOAD_FLAGS) -lXt -lX11 @@\ @@\ map:: @@\ $(CC) -o /dev/null -m >program.map\ @@\ program.$(OBJ) $(LDOPTIONS)\ @@\ $(EXTRA_LOAD_FLAGS) -lXt -lX11 @@\ @@\ clean:: @@\ RemoveTargetProgram(program#$(EXE)) #else /* vms */ #define DWProgramTarget(program) @@\ program#$(EXE): program.$(OBJ) @@\ RemoveTargetProgram($@) @@\ imaketmp:=sys$scratch:imake_tmp.opt @@\ open/write imaketmp 'imaketmp' @@\ write imaketmp "sys$share:decw$dwtlibshr.exe/share" @@\ write imaketmp "sys$share:decw$xlibshr.exe/share" @@\ close imaketmp @@\ $(LINK) /exe='f$parse("$@")' $(LDOPTIONS)\ @@\ $(EXTRA_LOAD_FLAGS) program.$(OBJ), 'f$search(imaketmp)'/opt @@\ - $(RM)/nolog 'imaketmp'; @@\ @@\ map:: @@\ imaketmp:=sys$scratch:imake_tmp.opt @@\ open/write imaketmp 'imaketmp' @@\ write imaketmp "sys$share:decw$dwtlibshr.exe/share" @@\ write imaketmp "sys$share:decw$xlibshr.exe/share" @@\ close imaketmp @@\ $(LINK) /exe=_NL:/map=program.map/full $(LDOPTIONS)\ @@\ $(EXTRA_LOAD_FLAGS) program.$(OBJ), 'f$search(imaketmp)'/opt @@\ - $(RM)/nolog 'imaketmp'; @@\ @@\ clean:: @@\ RemoveTargetProgram(program#$(EXE)) #endif /* vms */ #endif /* DWProgramTarget */ /* * XMProgramTarget - generate rules to make a X Motif target from a single * object. */ #ifndef XMProgramTarget #ifndef vms #define XMProgramTarget(program) @@\ program#$(EXE): program.$(OBJ) @@\ RemoveTargetProgram($@) @@\ $(CC) -o $@ program.$(OBJ) $(LDOPTIONS)\ @@\ $(EXTRA_LOAD_FLAGS) $(MOTIFLIBS) $(LOCAL_LIBRARIES)\ @@\ $(SYS_LIBRARIES) @@\ @@\ map:: @@\ $(CC) -o /dev/null -m >program.map\ @@\ program.$(OBJ) $(LDOPTIONS)\ @@\ $(EXTRA_LOAD_FLAGS) $(MOTIFLIBS) $(LOCAL_LIBRARIES)\ @@\ $(SYS_LIBRARIES) @@\ @@\ @@\ clean:: @@\ RemoveTargetProgram(program#$(EXE)) #else /* vms */ #define XMProgramTarget(program) @@\ program#$(EXE): program.$(OBJ) @@\ RemoveTargetProgram($@) @@\ imaketmp:=sys$scratch:imake_tmp.opt @@\ open/write imaketmp 'imaketmp' @@\ write imaketmp "sys$share:decw$dwtlibshr.exe/share" @@\ write imaketmp "sys$share:decw$dxmlibshr.exe/share" @@\ write imaketmp "sys$share:decw$xlibshr.exe/share" @@\ close imaketmp @@\ $(LINK) /exe='f$parse("$@")' $(LDOPTIONS)\ @@\ $(EXTRA_LOAD_FLAGS) program.$(OBJ),\ @@\ $(LOCAL_LIBRARIES), 'f$search(imaketmp)'/opt @@\ - $(RM)/nolog 'imaketmp'; @@\ @@\ map:: @@\ imaketmp:=sys$scratch:imake_tmp.opt @@\ open/write imaketmp 'imaketmp' @@\ write imaketmp "sys$share:decw$dwtlibshr.exe/share" @@\ write imaketmp "sys$share:decw$xlibshr.exe/share" @@\ close imaketmp @@\ $(LINK) /exe=_NL:/map=program.map/full $(LDOPTIONS)\ @@\ $(EXTRA_LOAD_FLAGS) program.$(OBJ),\ @@\ $(LOCAL_LIBRARIES), 'f$search(imaketmp)'/opt @@\ - $(RM)/nolog 'imaketmp'; @@\ @@\ clean:: @@\ RemoveTargetProgram(program#$(EXE)) #endif /* vms */ #endif /* XMProgramTarget */ /* * XM2ProgramTarget - generate rules to make a X Motif target from a single * object and a library. */ #ifndef XM2ProgramTarget #ifndef vms #define XM2ProgramTarget(program,library) @@\ program#$(EXE): program.$(OBJ) lib#library.a @@\ RemoveTargetProgram($@) @@\ $(CC) -o $@ program.$(OBJ) $(LDOPTIONS) lib#library.a\ @@\ $(EXTRA_LOAD_FLAGS) $(MOTIFLIBS) $(LOCAL_LIBRARIES)\ @@\ $(SYS_LIBRARIES) @@\ @@\ map:: @@\ $(CC) -o /dev/null -m >program.map\ @@\ program.$(OBJ) $(LDOPTIONS) lib#library.a\ @@\ $(EXTRA_LOAD_FLAGS) $(MOTIFLIBS) $(LOCAL_LIBRARIES)\ @@\ $(SYS_LIBRARIES) @@\ @@\ @@\ clean:: @@!\ RemoveTargetProgram(program#$(EXE)) #else /* vms */ #define XM2ProgramTarget(program, library) @@\ program#$(EXE): program.$(OBJ) lib#library.olb @@\ RemoveTargetProgram($@) @@\ imaketmp:=sys$scratch:imake_tmp.opt @@\ open/write imaketmp 'imaketmp' @@\ write imaketmp "sys$share:decw$dwtlibshr.exe/share" @@\ write imaketmp "sys$share:decw$dxmlibshr.exe/share" @@\ write imaketmp "sys$share:decw$xlibshr.exe/share" @@\ close imaketmp @@\ $(LINK) /exe='f$parse("$@")' $(LDOPTIONS)\ @@\ $(EXTRA_LOAD_FLAGS) program.$(OBJ),\ @@\ lib#library.olb/lib, $(LOCAL_LIBRARIES),\ @@\ 'f$search(imaketmp)'/opt @@\ - $(RM)/nolog 'imaketmp'; @@\ @@\ map:: @@\ imaketmp:=sys$scratch:imake_tmp.opt @@\ open/write imaketmp 'imaketmp' @@\ write imaketmp "sys$share:decw$dwtlibshr.exe/share" @@\ write imaketmp "sys$share:decw$xlibshr.exe/share" @@\ close imaketmp @@\ $(LINK) /exe=_NL:/map=program.map/full $(LDOPTIONS)\ @@\ $(EXTRA_LOAD_FLAGS) program.$(OBJ),\ @@\ lib#library.olb/lib, $(LOCAL_LIBRARIES),\ @@\ 'f$search(imaketmp)'/opt @@\ - $(RM)/nolog 'imaketmp'; @@\ @@\ clean:: @@\ RemoveTargetProgram(program#$(EXE)) #endif /* vms */ #endif /* XM2ProgramTarget */ /* * XTrapProgramTarget - generate rules to make a CCR DECwindows Tool target. */ #ifndef XTrapProgramTarget #ifndef vms #define XTrapProgramTarget(program) @@\ program#$(EXE): program.$(OBJ) libXTrap.$(LIB) @@\ RemoveTargetProgram($@) @@\ $(CC) -o $@ program.$(OBJ) $(LDOPTIONS)\ @@\ $(EXTRA_LOAD_FLAGS) libXTrap.$(LIB)\ @@\ $(LINKLIB)/libXext.$(LIB)\ @@\ $(MOTIF)/libXt.$(LIB) $(LINKLIB)/libX11.$(LIB)\ @@\ $(LINKLIB)/libdnet.$(LIB)\ @@\ $(LINKLIB)/libcurses.$(LIB)\ @@\ $(LINKLIB)/libtermcap.$(LIB)\ @@\ $(LINKLIB)/libi.$(LIB)\ @@\ $(LINKLIB)/libc.$(LIB) @@\ @@\ map:: @@\ $(CC) -o /dev/null -m >program.map\ @@\ program.$(OBJ) $(LDOPTIONS)\ @@\ $(EXTRA_LOAD_FLAGS) libXTr%ap.$(LIB)\ @@\ $(LINKLIB)/libXext.$(LIB)\ @@\ $(MOTIF)/libXt.$(LIB) $(LINKLIB)/libX11.$(LIB)\ @@\ $(LINKLIB)/libdnet.$(LIB)\ @@\ $(LINKLIB)/libcurses.$(LIB)\ @@\ $(LINKLIB)/libtermcap.$(LIB)\ @@\ $(LINKLIB)/libi.$(LIB)\ @@\ $(LINKLIB)/libc.$(LIB) @@\ @@\ clean:: @@\ RemoveTargetProgram(program#$(EXE)) #else /* vms */ #define XTrapProgramTarget(program) @@\ program#$(EXE): program.$(OBJ) decw$xtraplibshr.exe xtrap.opt @@\ RemoveTargetProgram($@) @@\ $(LINK) /exe='f$parse("$@")' $(LDOPTIONS)\ @@\ $(EXTRA_LOAD_FLAGS) program.$(OBJ),\ @@\ 'f$search("xtrap.opt")'/opt @@\ @@\ map:: @@\ $(LINK) /exe=_NL:/map=program.map/full $(LDOPTIONS)\ @@\ $(EXTRA_LOAD_FLAGS) program.$(OBJ),\ @@\ 'f$search("xtrap.opt")'/opt @@\ @@\ clean:: @@\ RemoveTargetProgram(program#$(EXE)) #endif /* vms */ #endif /* XTrapProgramTarget */ /* * XDtProgramTarget - generate rules to make a CCR DECwindows Tool target. */ #ifndef XDtProgramTarget #ifndef vms #define XDtProgramTarget(program) @@\ program#$(EXE): program.$(OBJ) libXDt.$(LIB) ../..toplink/ut/libut.$(LIB)\ @@\ ../..toplink/xtrap/libXTrap.$(LIB) @@\ RemoveTargetProgram($@) @@\ $(CC) -o $@ program.$(OBJ) $(LDOPTIONS)\ @@\ $(EXTRA_LOAD_FLAGS) libXDt.$(LIB)\ @@\ $(LOCAL_LIBRARIES) $(LINKLIB)/libXext.$(LIB)\ @@\ $(LINKLIB)/libi.$(LIB)\ @@\ $(LINKLIB)/libc.$(LIB)\ @@\ $(LINKLIB)/libXt.$(LIB) $(LINKLIB)/libX11.$(LIB)\ @@\ $(LINKLIB)/libdnet.$(LIB)\ @@\ $(LINKLIB)/libimg.$(LIB) $(LINKLIB)/libchf.$(LIB)\ @@\ $(LINKLIB)/libddif.$(LIB)\ @@\ $(LINKLIB)/libm.$(LIB)\ @@\ $(LINKLIB)/libc.$(LIB) @@\ @@\ map:: @@\ $(CC) -o /dev/null -m >program.map\ @@\ program.$(OBJ) $(LDOPTIONS)\ @@\ $(EXTRA_LOAD_FLAGS) libXDt.$(LIB)\ @@\ $(LOCAL_LIBRARIES) $(LINKLIB)/libXext.$(LIB)\ @@\ $(LINKLIB)/libi.$(LIB)\ @@\ $(LINKLIB)/libc.$(LIB)\ @@\ $(LINKLIB)/libXt.$(LIB) $(LINKLIB)/libX11.$(LIB)\ @@\ $(LINKLIB)/libdnet.$(LIB)\ @@\ $(LINKLIB)/libimg.$(LIB) $(LINKLIB)/libchf.$(LIB)\ @@\ $(LINKLIB)/libddif.$(LIB)\ @@\ $(LINKLIB)/libm.$(LIB)\ @@\ $(LINKLIB)/libc.$(LIB) @@\ @@\ clean:: @@\ RemoveTargetProgram(program#$(EXE)) #else /* vms */ #define XDtProgramTarget(program) @@\ program#$(EXE): program.$(OBJ) libXDt.$(LIB) xdt.opt @@\ RemoveTargetProgram($@) @@\ $(LINK) /exe='f$parse("$@")' $(LDOPTIONS)\ @@\ $(EXTRA_LOAD_FLAGS) program.$(OBJ),\ @@\ libXDt.$(LIB)/lib/inc=xdtmsg,\ @@\ [-.ut]libut.$(LIB)/lib/inc=utmsg, 'f$search("xdt.opt")'/opt @@\ @@\ map:: @@\ $(LINK) /exe=_NL:/map=program.map/full $(LDOPTIONS)\ @@\ $(EXTRA_LOAD_FLAGS) program.$(OBJ),\ @@\ libXDt.$(LIB)/lib/inc=xdtmsg,\ @@\ [-.ut]libut.$(LIB)/lib/inc=utmsg, 'f$search("xdt.opt")'/opt @@\ @@\ clean:: @@\ RemoveTargetProgram(program#$(EXE)) #endif /* vms */ #endif /* XDtProgramTarget */ /* * XDtUiProgTarget - generate rules to make a CCR DECwindows Tool target. */ #ifndef XDtUiProgTarget #ifndef vms #define XDtUiProgTarget(program,obj1) @@\ program#$(EXE): program.$(OBJ) libXDt.$(LIB)\ @@\ ../..toplink/ut/libut.$(LIB)\ @@\ ../..toplink/xtrap/libXTrap.$(LIB) @@\ RemoveTargetProgram($@) @@\ $(CC) -o $@ program.$(OBJ) obj1.$(OBJ) $(LDOPTIONS)\ @@\ $(EXTRA_LOAD_FLAGS)\ @@\ libXDt.$(LIB)\ @@\ $(LOCAL_LIBRARIES) $(LINKLIB)/libXext.$(LIB)\ @@\ $(MOTIF)/libDXm.$(LIB) $(MOTIF)/libMrm.$(LIB)\ @@\ $(MOTIF)/libXm.$(LIB) $(MOTIF)/libXt.$(LIB)\ @@\ $(LINKLIB)/libdgit.$(LIB)\ @@\ $(LINKLIB)/libi.$(LIB) $(LINKLIB)/libm.$(LIB)\ @@\ $(LINKLIB)/libc.$(LIB) $(LINKLIB)/libX11.$(LIB)\ @@\ $(LINKLIB)/libimg.$(LIB) $(LINKLIB)/libchf.$(LIB)\ @@\ $(LINKLIB)/libddif.$(LIB)\ @@\ $(LINKLIB)/libm.$(LIB)\ @@\ $(LINKLIB)/libc.$(LIB) @@\ @@\ map:: @@\ $(CC) -o /dev/null -m >program.map\ @@\ program.$(OBJ) obj1.$(OBJ) $(LDOPTIONS)\ @@\ $(EXTRA_LOAD_FLAGS)\ @@\ libXDt.$(LIB)\ @@\ $(LOCAL_LIBRARIES) $(LINKLIB)/libXext.$(LIB)\ @@\ $(MOTIF)/libDXm.$(LIB) $(MOTIF)/libMrm.$(LIB)\ @@\ $(MOTIF)/libXm.$(LIB) $(MOTIF)/libXt.$(LIB)\ @@\ $(LINKLIB)/libdgit.$(LIB)\ @@\ $(LINKLIB)/libi.$(LIB) $(LINKLIB)/libm.$(LIB)\ @@\ $(LINKLIB)/libc.$(LIB) $(LINKLIB)/libX11.$(LIB)\ @@\ $(LINKLIB)/libimg.$(LIB) $(LINKLIB)/libchf.$(LIB)\ @@\ $(LINKLIB)/libddif.$(LIB)\ @@\ $(LINKLIB)/libm.$(LIB)\ @@\ $(LINKLIB)/libc.$(LIB) @@\ @@\ clean:: @@\ RemoveTargetProgram(program#$(EXE)) #else /* vms */ #define XDtUiProgTarget(program,obj1) @@\ program#$(EXE): program.$(OBJ) obj1.$(OBJ) libXDt.$(LIB) xdt.opt [-.xtrap]decw$xtraplibshr.exe @@\ RemoveTargetProgram($@) @@\ $(LINK) /exe='f$parse("$@")' $(LDOPTIONS)\ @@\ $(EXTRA_LOAD_FLAGS) program.$(OBJ),\ @@\ libXDt.$(LIB)/lib/inc=(xdtmsg,obj1),\ @@\ [-.ut]libut.$(LIB)/lib/inc=utmsg, 'f$search("xdt.opt")'/opt @@\ @@\ map:: @@\ $(LINK) /exe=_NL:/map=program.map/full $(LDOPTIONS)\ @@\ $(EXTRA_LOAD_FLAGS) program.$(OBJ),\ @@\ libXDt.$(LIB)/lib/inc=(xdtmsg,obj1),\ @@\ [-.ut]libut.$(LIB)/lib/inc=utmsg, 'f$search("xdt.opt")'/opt @@\ @@\ clean:: @@\ RemoveTargetProgram(program#$(EXE)) #endif /* vms */ #endif /* XDtUiProgTarget */ /* * UiProgramTarget - generate rules to make a ui program target. */ #ifndef UiProgramTarget #ifndef vms #define UiProgramTarget(program,object,object2) @@\ program#$(EXE): libmi.$(LIB) @@\ RemoveTargetProgram($@) @@\ $(CC) -o $@ object.$(OBJ) object2.$(OBJ)\ @@\ $(LDOPTIONS) $(LOCAL_LIBRARIES) $(LDLIBS) $(EXTRA_LOAD_FLAGS) @@\ @@\ map:: @@\ $(CC) -o /dev/null -m >program.map\ @@\ object.$(OBJ) object2.$(OBJ)\ @@\ $(LDOPTIONS) $(LOCAL_LIBRARIES) $(LDLIBS) $(EXTRA_LOAD_FLAGS) @@\ @@\ clean:: @@\ RemoveTargetProgram(program#$(EXE)) #else /* vms */ #define UiProgramTarget(program,object,object2) @@\ program#$(EXE): libmi.$(LIB) program.opt @@\ RemoveTargetProgram($@) @@\ imaketmp:=program.opt @@\ - $(LINK) /exe='f$parse("$@")'\ @@\ object.$(OBJ), object2.$(OBJ),\ @@\ $(LDOPTIONS) $(LOCAL_LIBRARIES) $(LDLIBS)\ @@\ $(EXTRA_LOAD_FLAGS) 'f$search(imaketmp)'/opt @@\ @@\ map:: @@\ imaketmp:=program.opt @@\ - $(LINK) /exe=_NL:/map=program.map/full\ @@\ object.$(OBJ), object2.$(OBJ),\ @@\ $(LDOPTIONS) $(LOCAL_LIBRARIES) $(LDLIBS)\ @@\ $(EXTRA_LOAD_FLAGS) 'f$search(imaketmp)'/opt @@\ @@\ clean:: @@\ RemoveTargetProgram(program#$(EXE)) #endif /* vms */ #endif /* UiProgramTarget */ /* * UidTarget - generate rules to make a ui uid target. */ #ifndef UidTarget #ifndef vms #define UidTarget(uid, uil, uildepend) @@\ uid:: uildepend @@\ RemoveTargetProgram($@) @@\ $(UIL) -o uid $(UILFLAGS) $(UIL_INCLUDES) uil @@\ @@\ clean:: @@\ RemoveTargetProgram(uid) #else /* vms */ #define UidTarget(uid, u&K~ IMAKE.SAV%WVMAKE.BINARY]IMAKE.RULES;1bp*3il, uildepend) @@\ uid:: uildepend @@\ RemoveTargetProgram($@) @@\ define/user UIL$INCLUDE $(UIL_INCLUDES) @@\ define/user SYS$SHARE SYS$SYSROOT:[SYSLIB] @@\ $(UIL) /warning=noinformation /out='f$parse("$@")'\ @@\ /list=_NL: $(UILFLAGS) uil @@\ @@\ clean:: @@\ RemoveTargetProgram(uid) #endif /* vms */ #endif /* UidTarget */ /* * UilTarget - generate rules to make UIL target(s) from UIGEN */ #ifndef UilTarget #ifndef vms #define UilTarget(uigen, uildepend, fixup_rtn) /**/ #else /* vms */ #define UilTarget(uigen, uildepend, fixup_rtn) @@\ uildepend:: uigen @@\ define/user SYS$SHARE SYS$SYSROOT:[SYSLIB] @@\ uigltrans -wm uigen @@\ imaketmp:=fixup_rtn @@\ - if f$search(f$parse(imaketmp)) .nes. "" then @'f$parse(imaketmp)' #endif /* vms */ #endif /* UilTarget */ /* * DmObjectTarget - generate rules to compile a data manager object. */ #ifndef DmObjectTarget #ifndef vms #define DmObjectTarget(program) @@\ program.o: progr 5am.c @@\ RemoveTargetProgram($@) @@\ $(CC) -c -g program.c -I/usr/include/idl\ @@\ -I/usr/include/idl/c -I/usr/include/X11\ @@\ -I../..toplink/ut @@\ clean:: @@\ $(RM) program.o #else /* vms */ #define DmObjectTarget(program) #endif /* vms */ #endif /* DmOjbectTarget */ /* * DmProgramTarget - generate rules to compile a data manager executable. */ #ifndef DmProgramTarget #ifndef vms #define DmProgramTarget(program,objlist,liblist, libdepends) @@\ program#$(EXE): objlist libdepends @@\ RemoveTargetProgram($@) @@\ $(CC) -o $@ -s -O2 objlist $(LDOPTIONS) ../..toplink/ut/libut.$(LIB)\ @@\ liblist $(EXTRA_LOAD_FLAGS) @@\ @@\ map:: @@\ $(CC) -o /dev/null -m >program.map\ @@\ -s -O2 objlist $(LDOPTIONS) ../..toplink/ut/libut.$(LIB)\ @@\ liblist $(EXTRA_LOAD_FLAGS) @@\ @@\ clean:: @@\ RemoveTargetProgram(program#$(EXE)) @@\ $(RM) program.o #else /* vms */ #define DmProgramTarget(program,objlist, liblist, libdepends) @@\ program#$(EXE): objlist libdepends @@\ RemoveTargetProgram($@) @@\ $(LINK) /exe='f$parse("$@")' objlist, liblist,\ @@\ [-.ut]libut.$(LIB)/lib/inc=utmsg @@\ @@\ map:: @@\ $(LINK) /exe=_NL:/map=program.map/full objlist, liblist,\ @@\ [-.ut]libut.$(LIB)/lib/inc=utmsg @@\ @@\ clean:: @@\ RemoveTargetProgram(program#$(EXE)) #endif /* vms */ #endif /* DmProgramTarget */ /* * DmDCLTarget - generate a .dcl file from an SQL database */ #ifndef DmDCLTarget #if !defined(vms) #ifdef MipsArchitecture #define DmDCLTarget(includefile, table) @@\ includefile.dcl: @@\ RemoveTargetProgram($@) @@\ dclgen c dmtest1 table $@ table#Rec @@\ @@\ clean:: @@\ RemoveTargetProgram(includefile.dcl) @@\ $(RM) includefile.c #else #define DmDCLTarget(includefile, table) @@\ includefile.dcl: @@\ cp ../../mips/dm/includefile.dcl . @@\ @@\ clean:: @@\ RemoveTargetProgram(includefile.dcl) @@\ $(RM) includefile.c #endif #else #define DmDCLTarget(includefile, table) #endif /* MipsArchitecture - DmDCLTarget */ #endif /* DmDCLTarget */ /* * TmServerProgramTarget - generate rules to make a task manager server target. */ #ifndef TmServerProgramTarget #ifndef vms #define TmServerProgramTarget(program) @@\ program#$(EXE): program.$(OBJ) libtmserver.$(LIB) @@\ RemoveTargetProgram($@) @@\ $(CC) -o $@ $@.$(OBJ) libtmserver.$(LIB) $(LDOPTIONS)\ @@\ $(EXTRA_LOAD_FLAGS) $(LOCAL_LIBRARIES) @@\ @@\ map:: @@\ $(CC) -o /dev/null -m >program.map\ @@\ tmserver.$(OBJ) libtmserver.$(LIB) $(LDOPTIONS)\ @@\ $(EXTRA_LOAD_FLAGS) $(LOCAL_LIBRARIES) @@\ @@\ clean:: @@\ RemoveTargetProgram(program#$(EXE)) #else /* vms */ #define TmServerProgramTarget(program) @@\ program#$(EXE): program.$(OBJ), libtmserver.$(LIB) @@\ RemoveTargetProgram($@) @@\ - $(LINK) /exe='f$parse("$@")' program.$(OBJ),\ @@\ libtmserver.$(LIB)/lib,\ @@\ $(LOCAL_LIBRARIES),\ @@\ sys$library:rpc$libnck.$(LIB)/lib,\ @@\ sys$library:rpc$libucx.$(LIB)/lib,\ @@\ sys$library:ucx$ipc.$(LIB)/lib @@\ @@\ map:: @@\ - $(LINK) /exe=_NL:/map=program.map/full program.$(OBJ),\ @@\ libtmserver.$(LIB)/lib,\ @@\ $(LOCAL_LIBRARIES),\ @@\ sys$library:rpc$libnck.$(LIB)/lib,\ @@\ sys$library:rpc$libucx.$(LIB)/lib,\ @@\ sys$library:ucx$ipc.$(LIB)/lib @@\ @@\ clean:: @@\ RemoveTargetProgram(program#$(EXE)) #endif /* vms */ #endif /* TmServerProgramTarget */ /* * TmTestProgram - generate rules to compile a task manager object. */ #ifndef TmTestProgram #ifndef vms #define TmTestProgram(program,objlist) @@\ test:: program @@\ @@\ program#$(EXE): program.$(OBJ) objlist @@\ RemoveTargetProgram($@) @@\ $(CC) -o $@ objlist $(LDOPTIONS) ../..toplink/ut/libut.$(LIB)\ @@\ $(EXTRA_LOAD_FLAGS) $(LOCAL_LIBRARIES) @@\ @@\ map:: @@\ $(CC) -o /dev/null -m >program.map\ @@\ objlist $(LDOPTIONS) ../..toplink/ut/libut.$(LIB)\ @@\ $(EXTRA_LOAD_FLAGS) $(LOCAL_LIBRARIES) @@\ @@\ clean:: @@\ RemoveTargetProgram(program#$(EXE)) @@\ $(RM) program.o #else /* vms */ #define TmTestProgram(program,objlist) @@\ test:: program#$(EXE) @@\ write sys$output "Test program built" @@\ @@\ program#$(EXE): program.$(OBJ) tmrpc_cstub.$(OBJ) tmrpc_cswtch.$(OBJ) libtm.$(LIB) @@\ RemoveTargetProgram($@) @@\ - $(LINK) /exe='f$parse("$@")' program.$(OBJ),\ @@\ tmrpc_cstub.$(OBJ),tmrpc_cswtch.$(OBJ),libtm.$(LIB)/lib,\ @@\ $(LOCAL_LIBRARIES),\ @@\ sys$library:rpc$libnck.$(LIB)/lib,\ @@\ sys$library:rpc$libucx.$(LIB)/lib,\ @@\ sys$library:ucx$ipc.$(LIB)/lib @@\ @@\ map:: @@\ - $(LINK) /exe=_NL:/map=program.map/full program.$(OBJ),\ @@\ tmrpc_cstub.$(OBJ),tmrpc_cswtch.$(OBJ),libtm.$(LIB)/lib,\ @@\ $(LOCAL_LIBRARIES),\ @@\ sys$library:rpc$libnck.$(LIB)/lib,\ @@\ sys$library:rpc$libucx.$(LIB)/lib,\ @@\ sys$library:ucx$ipc.$(LIB)/lib @@\ @@\ clean:: @@\ RemoveTargetProgram(program#$(EXE)) #endif /* vms */ #endif /* TmTestProgram*/ /* * CiProgramTarget - generate rules to compile a task manager object. */ #ifndef CiProgramTarget #ifndef vms #define CiProgramTarget(program,objlist) @@\ test:: program @@\ @@\ program#$(EXE): program.$(OBJ) objlist @@\ RemoveTargetProgram($@) @@\ $(CC) -o $@ objlist $(LDOPTIONS)\ @@\ $(EXTRA_LOAD_FLAGS) $(LOCAL_LIBRARIES) @@\ @@\ map:: @@\ $(CC) -o /dev/null -m >program.map\ @@\ objlist $(LDOPTIONS)\ @@\ $(EXTRA_LOAD_FLAGS) $(LOCAL_LIBRARIES) @@\ @@\ clean:: @@\ RemoveTargetProgram(program#$(EXE)) @@\ $(RM) program.o #else /* vms */ #define CiProgramTarget(program,objlist) @@\ test:: program#$(EXE) @@\ write sys$output "CI program built" @@\ @@\ program#$(EXE): program.$(OBJ) objlist libci.$(LIB) program.opt @@\ RemoveTargetProgram($@) @@\ imaketmp:=program.opt @@\ - $(LINK) /exe='f$parse("$@")' program.$(OBJ),\ @@\ $(LDOPTIONS) $(LOCAL_LIBRARIES), $(LDLIBS)\ @@\ $(EXTRA_LOAD_FLAGS) 'f$search(imaketmp)'/opt @@\ @@\ map:: @@\ imaketmp:=program.opt @@\ - $(LINK) /exe=_NL:/map=program.map/full program.$(OBJ),\ @@\ $(LDOPTIONS) $(LOCAL_LIBRARIES), $(LDLIBS)\ @@\ $(EXTRA_LOAD_FLAGS) 'f$search(imaketmp)'/opt @@\ @@\ clean:: @@\ RemoveTargetProgram(program#$(EXE)) #endif /* vms */ #endif /* CiProgramTarget */ /* * TestProgramTarget - generate rules to compile a test program. */ #ifndef TestProgramTarget #ifndef vms #define TestProgramTarget(program,objlist) @@\ AllTarget(program#$(EXE)) @@\ test:: program#$(EXE) @@\ @@\ program#$(EXE): program.$(OBJ) objlist @@\ RemoveTargetProgram($@) @@\ $(CC) -o $@ program.$(OBJ)\ @@\ $(LDOPTIONS) $(LOCAL_LIBRARIES) $(LDLIBS) $(EXTRA_LOAD_FLAGS) @@\ @@\ map:: @@\ $(CC) -o /dev/null -m >program.map\ @@\ program.$(OBJ)\ @@\ $(LDOPTIONS) $(LOCAL_LIBRARIES) $(LDLIBS) $(EXTRA_LOAD_FLAGS) @@\ @@\ clean:: @@\ RemoveTargetProgram(program#$(EXE)) @@\ $(RM) program.o #else /* vms */ #define TestProgramTarget(program,objlist) @@\ AllTarget(program#$(EXE)) @@\ test:: program#$(EXE) @@\ ! Test program built @@\ @@\ program#$(EXE): program.$(OBJ) objlist program.opt @@\ RemoveTargetProgram($@) @@\ imaketmp:=program.opt @@\ $(LINK) /exe='f$parse("$@")' program.$(OBJ),\ @@\ $(LDOPTIONS) $(LOCAL_LIBRARIES), $(LDLIBS)\ @@\ [-.ut]libut.$(LIB)/lib/inc=utmsg,\ @@\ $(EXTRA_LOAD_FLAGS) 'f$search(imaketmp)'/opt @@\ @@\ map:: @@\ imaketmp:=program.opt @@\ $(LINK) /exe=_NL:/map=program.map/full program.$(OBJ),\ @@\ $(LDOPTIONS) $(LOCAL_LIBRARIES), $(LDLIBS)\ @@\ [-.ut]libut.$(LIB)/lib/inc=utmsg,\ @@\ $(EXTRA_LOAD_FLAGS) 'f$search(imaketmp)'/opt @@\ @@\ clean:: @@\ E RemoveTargetProgram(program#$(EXE)) #endif /* vms */ #endif /* TestProgramTarget*/ /* * SimpleTestProgramTarget - generate rules to compile a test program. */ #ifndef SimpleTestProgramTarget #ifndef vms #ifdef sparc #define SimpleTestProgramTarget(program) @@\ AllTarget(program#$(EXE)) @@\ test:: program#$(EXE) @@\ @@\ program#$(EXE): program.$(OBJ) ../..toplink/ut/libut.$(LIB) @@\ RemoveTargetProgram($@) @@\ $(CC) -o $@ program.$(OBJ) ../..toplink/ut/libut.$(LIB)\ @@\ $(LOCAL_LIBRARIES)\ @@\ $(LDOPTIONS) $(EXTRA_LOAD_FLAGS) @@\ @@\ map:: @@\ $(CC) -o /dev/nul -m >program.map\ @@\ program.$(OBJ) ../..toplink/ut/libut.$(LIB)\ @@\ $(LOCAL_LIBRARIES)\ @@\ $(LDOPTIONS) $(EXTRA_LOAD_FLAGS) @@\ @@\ clean:: @@\ RemoveTargetProgram(program#$(EXE)) @@\ $(RM) program.o #else /* it's mips */ #define SimpleTestProgramTarget(program) @@\ AllTarget(program#$(EXE)) @@\ test:: program#$(EXE) @@\ @@\ program#$(EXE): program.$(OBJ) ../..toplink/ut/libut.$(LIB) @@\ RemoveTargetProgram($@) @@\ $(CC) -o $@ program.$(OBJ) ../..toplink/ut/libut.$(LIB)\ @@\ $(LINKLIB)/libi.$(LIB)\ @@\ $(LDOPTIONS) $(EXTRA_LOAD_FLAGS) @@\ @@\ map:: @@\ $(CC) -o /dev/nul -m >program.map\ @@\ program.$(OBJ) ../..toplink/ut/libut.$(LIB)\ @@\ $(LINKLIB)/libi.$(LIB)\ @@\ $(LDOPTIONS) $(EXTRA_LOAD_FLAGS) @@\ @@\ clean:: @@\ RemoveTargetProgram(program#$(EXE)) @@\ $(RM) program.o #endif #else /* vms */ #define SimpleTestProgramTarget(program) @@\ AllTarget(program#$(EXE)) @@\ test:: program#$(EXE) @@\ ! Test program built @@\ @@\ program#$(EXE): program.$(OBJ) [-.ut]libut.$(LIB) @@\ RemoveTargetProgram($@) @@\ $(LINK) /exe='f$parse("$@")' program.$(OBJ),\ @@\ [-.ut]libut.$(LIB)/lib/inc=utmsg\ @@\ $(LDOPTIONS) $(EXTRA_LOAD_FLAGS) @@\ @@\ map:: @@\ $(LINK) /exe=_NL:/map=program.map/full program.$(OBJ),\ @@\ [-.ut]libut.$(LIB)/lib/inc=utmsg\ @@\ $(LDOPTIONS) $(EXTRA_LOAD_FLAGS) @@\ @@\ clean:: @@\ RemoveTargetProgram(program#$(EXE)) #endif /* vms */ #endif /* SimpleTestProgramTarget*/ /* * IDLTarget - generate rules to compile a IDL file */ #ifndef IDLTarget #ifndef vms #define IDLTarget(idlsrc) @@\ idlsrc.h: idlsrc.idl @@\ nidl -s idlsrc.idl -no_cpp -idir /usr/include/idl #else /* vms */ #define IDLTarget(idlsrc) @@\ idlsrc.h: idlsrc.idl @@\ nidl -s idlsrc.idl -idir rpc$lib: #endif /* vms */ #endif /* IDLTarget */ /* * LEXTarget - generate rules to compile a LEX file */ #ifndef LEXTarget #ifndef vms #define LEXTarget(lexsrc) @@\ AllTarget(lexsrc.c) @@\ lexsrc.c: lexsrc.lex @@\ lex lexsrc.lex @@\ mv lex.yy.c lexsrc.c #else /* vms */ #define LEXTarget(lexsrc) /**/ #endif /* vms */ #endif /* LEXTarget */ /* * TILTarget - generate rules to compile a TIL file */ #ifndef TILTarget #ifndef vms #define TILTarget(tilobj,options,tilsrc) @@\ FUSE_dx#tilobj.c: tilsrc.til @@\ RemoveTargetProgram($@) @@\ til -cdx#tilobj options tilsrc.til @@\ @@\ clean:: @@\ RemoveTargetProgram($@) #else /* vms */ #define TILTarget(tilobj,options,tilsrc) /**/ #endif /* vms */ #endif /* TILTarget */ /* * TestModuleTarget - generate rules to make target from a single * object. */ #ifndef TestModuleTarget #ifndef vms #define TestModuleTarget(module) @@\ module#_test.$(OBJ): module.c @@\ RemoveTargetProgram($@) @@\ $(CC) -c module.c -o $@ $(CFLAGS) -DTESTING @@\ @@\ clean:: @@\ RemoveTargetProgram(module#_test.$(OBJ)) #else /* vms */ #define TestModuleTarget(module) @@\ module#_test.$(OBJ): module.c @@\ RemoveTargetProgram(module#_test.$(OBJ)) @@\ $(CC) module.c /obj=$@ $(CFLAGS) -DTESTING @@\ @@\ clean:: @@\ RemoveTargetProgram(module#_test.$(OBJ)) #endif /* vms */ #endif /* TestModuleTargMet */ /* * XDtTestTarget - generate rules to make target from a single * object. */ #ifndef XDtTestTarget #ifndef vms #define XDtTestTarget(module) @@\ test:: module#_test.$(OBJ) @@\ @@\ module#_test.$(OBJ): module.c @@\ RemoveTargetProgram($@) @@\ $(CC) -c module.c -o $@ $(CFLAGS) -DTESTING @@\ @@\ clean:: @@\ RemoveTargetProgram(module#_test.$(OBJ)) #else /* vms */ #define XDtTestTarget(module) @@\ test:: module#_test.$(OBJ) @@\ @@\ module#_test.$(OBJ): module.c @@\ RemoveTargetProgram(module#_test.$(OBJ)) @@\ $(CC) module.c /obj=$@ $(CFLAGS) -DTESTING StandardDefines @@\ @@\ clean:: @@\ RemoveTargetProgram(module#_test.$(OBJ)) #endif /* vms */ #endif /* XDtTestTarget */ /* * CatFileTarget - generate rules to make single catalog file from * concatenated message files for U*IX. */ #ifndef CatFileTarget #ifndef vms #define CatFileTarget(msg_file, src_files) @@\ AllTarget(msg_file.cat) @@\ @@\ msg_file.cat: src_files @@\ RemoveTargetProgram($@) @@\ cat src_files | sed "s/^\.end/\! &/" | sed "s/ .title/\! &/" | \ @@\ cat - $(UTILSRC)/end_msg.msg >msg_file.msg @@\ msgtocat msg_file.msg msg_file.msf /dev/null @@\ gencat $@ msg_file.msf @@\ @@\ clean:: @@\ RemoveTargetProgram(msg_file.msg) @@\ RemoveTargetProgram(msg_file.cat) @@\ RemoveTargetProgram(msg_file.msf) #else /* vms */ #define CatFileTarget(msg_file, src_files) /**/ #endif /* vms */ #endif /* CatFileTarget */ /* * MessageFileTarget - generate rules to make message header file on VMS * for use on all platforms. Also creates .obj file used on VMS. */ #ifndef MessageFileTarget #ifndef vms #define MessageFileTarget(msg_file) /**/ #else /* vms */ #define MessageFileTarget(msg_file) @@\ AllTarget(msg_file.h msg_file.obj) @@\ msg_file.h: msg_file.msg @@\ RemoveTargetProgram($@) @@\ $(MESSAGE)/NOOBJ/SDL=msg_file.sdl msg_file.msg @@\ $(SDL)/LANGUAGE=C msg_file.sdl @@\ STREAMLF $@ @@\ @@\ msg_file.obj: msg_file.msg @@\ RemoveTargetProgram($@) @@\ $(MESSAGE)/OBJECT=$@ msg_file.msg @@\ @@\ clean:: @@\ RemoveTargetProgram(msg_file.h) @@\ RemoveTargetProgram(msg_file.obj) #endif /* vms */ #endif /* MessageFileTarget */ /* * HelpFileTarget - generate rules to make Help library file on VMS * for use on all platforms. */ #ifndef HelpFileTarget #ifndef vms #define HelpFileTarget(hlp_file) /**/ #else /* vms */ #define HelpFileTarget(hlp_file) @@\ AllTarget(hlp_file.hlb) @@\ hlp_file.hlb: hlp_file.hlp @@\ @@\ clean:: @@\ RemoveTargetProgram(hlp_file.hlb) #endif /* vms */ #endif /* HelpFileTarget */ /* * RunoffHelpTarget - generate rules to make Help file on VMS * from a Runoff source for use on all platforms. */ #ifndef RunoffHelpTarget #ifndef vms #define RunoffHelpTarget(rnh_file) /**/ #else /* vms */ #define RunoffHelpTarget(rnh_file) @@\ rnh_file.hlp: rnh_file.rnh @@\ RemoveTargetProgram($@) @@\ RUNOFF $< /OUTPUT=$@ @@\ STREAMLF $@ @@\ @@\ clean:: @@\ RemoveTargetProgram($@) #endif /* vms */ #endif /* RunoffHelpTarget */ /* * HeaderFileTarget - generate rules to make header file on VMS * for use on all platforms. */ #ifndef HeaderFileTarget #ifndef vms #define HeaderFileTarget(sdl_file) /**/ #else /* vms */ #define HeaderFileTarget(sdl_file) @@\ AllTarget(sdl_file.h) @@\ sdl_file.h: sdl_file.sdl @@\ RemoveTargetProgram($@) @@\ $(SDL)/LANGUAGE=C sdl_file.sdl @@\ STREAMLF $@ @@\ @@\ clean:: @@\ RemoveTargetProgram(sdl_file.h) #endif /* vms */ #endif /* HeaderFileTarget */ /* * SaberProgramTarget - generate rules to make Saber-C read in sources and * objects. */ #ifndef SaberProgramTarget #if HasSaberC #define SaberProgramTarget(program,srclist,objlist,locallibs,syslibs) @@\ saber_#program:: @@\ SABERLOAD $(ALLDEFINES) srclist locallibs $(SYS_LIBRARIEUS) $(EXTRA_LIBRARIES) syslibs @@\ @@\ osaber_#program:: @@\ SABERLOAD $(ALLDEFINES) objlist locallibs $(SYS_LIBRARIES) $(EXTRA_LIBRARIES) syslibs #else #define SaberProgramTarget(program,srclist,objlist,locallibs,syslibs) /**/ #endif #endif /* * SaberTestProgram - generate rules to make Saber-C read in sources and * objects for programs needing compilation with -DTESTING. */ #ifndef SaberTestProgram #if HasSaberC #define SaberTestProgram(program,srcfile) @@\ saber_#program:: @@\ $(RM) srcfile#_test.c; set -x; $(LN) srcfile.c srcfile#_test.c @@\ SABERLOAD $(ALLDEFINES) srcfile#_test.c -DTESTING #else #define SaberTestProgram(program,srcfile) /**/ #endif #endif #ifndef RemoveTargetProgram #ifndef vms #if RemoveTargetProgramByMoving #define RemoveTargetProgram(program)\ $(RM) program.bak; if [ -f program ]; then $(MV) program program.bak; fi #else #define RemoveTargetProgram(program) $(RM) program #endif #else /* vms */ #define RemoveTargetProgram(program) @@\ @- imaketmp:=program @@\ @- if f$search(f$parse(imaketmp)) .nes. "" then $(RM) 'f$parse(imaketmp)' #endif /* vms */ #endif /* RemoveTargetProgram */ /* * FetchList Target - Fetched a list of files from the CMS library */ #ifndef FetchListTarget #ifndef vms #define FetchListTarget(fetchlist) @@\ fetch:: @@\ echo "CMS not available on Unix" #else /* vms */ #define FetchListTarget(fetchlist) @@\ fetch:: fetchlist @@\ continue #endif /* vms */ #endif /* FetchListTarget */ /* * ScaLibrary Target - builds an SCA library from the source list */ #ifndef ScaLibraryTarget #ifndef vms #define ScaLibraryTarget(dir, scalist) @@\ scalib: @@\ echo "SCA not available on Unix" #else #define ScaLibraryTarget(dir, scalist) @@\ scalib: scalist @@\ SCA SET LIBRARY dir @@\ SCA LOAD *.ana #endif /* vms */ #endif /* ScaLibraryTarget */ /* * ScaHelpTarget - builds an SCA help file from an SCAlibrary */ #ifndef ScaHelpTarget #ifndef vms #define ScaHelpTarget(dirY, module) @@\ module.hlp: @@\ echo "SCA not available on Unix" #else #define ScaHelpTarget(dir, module) @@\ module.hlp: @@\ SCA SET LIBRARY dir @@\ SCA report/output=module.hlp help @@\ libr/help/create module module #endif /* vms */ #endif /* ScaHelpTarget */ /* * ScaLseTarget - builds an LSE packages file from an SCAlibrary */ #ifndef ScaLseTarget #ifndef vms #define ScaLseTarget(dir, module) @@\ module.lse: @@\ echo "SCA not available on Unix" #else #define ScaLseTarget(dir, module) @@\ module.lse: @@\ SCA SET LIBRARY dir @@\ SCA report/output=module.lse/language=c/help=module.hlb package #endif /* vms */ #endif /* ScaLseTarget */ /* * ScaInternalsTarget - builds an SDML internals report file from an SCAlibrary */ #ifndef ScaInternalsTarget #ifndef vms #define ScaInternalsTarget(dir, module) @@\ module#_internals.lse: @@\ echo " SCA not available on Unix" #else #define ScaInternalsTarget(dir, module) @@\ module#_internals.sdml: @@\ SCA SET LIBRARY dir @@\ SCA report/output=module#_internals.sdml internals #endif /* vms */ #endif /* ScaInternalsTarget */ /* * DependDependency - generate rules to build the makedepend program if * this Imakefile is within the source tree. */ #ifndef DependDependency #ifdef UseInstalled #define DependDependency() /**/ #else #ifndef vms #define DependDependency() @@\ depend:: $(DEPEND) @@\ @@\ $(DEPEND): @@\ @echo "checking $@ over in $(DEPENDSRC) first...";\ @@\ cd $(DEPENDSRC); $(MAKE);\ @@\ echo "okay, continuing in $(CURRENT_DIR)" #else /* vms */ #define DependDependency() /**/ #endif /* vms */ #endif /* UseInstalled */ #endif /* DependDependency */ /* * DependTarget - generate rules to compute dependencies for all files listed * in $(SRCS). */ #ifndef DependTarget #ifndef vms #define DependTarget(component) @@\ DependDependency() @@\ @@\ depend:: regdepend @@\ $(DEPEND) -- $(ALLDEFINES) -- $(SRCS) #else /* vms */ #define DependTarget(component) @@\ DependDependency() @@\ depend:: firstdepend regdepend @@\ imaketmp:=component#_depend.tmp @@\ $(DEPEND) -- $(ALLDEFINES) -- -1 'imaketmp' @@\ @@\ firstdepend:: @@\ imaketmp:=component#_depend.tmp @@\ copy/nolog _NL: 'imaketmp' #endif /* vms */ #endif /* DependTarget */ /* * MakeDependTarget - generate rules to compute dependencies for all * files listed in $(SRCS). Same as above but a clearer Imake Macro name, * and it will take a list of source files for makedpend to process. */ #ifndef MakeDependTarget #ifndef vms #define MakeDependTarget(component, modules) @@\ DependDependency() @@\ @@\ depend:: regdepend @@\ $(DEPEND) -- $(ALLDEFINES) -- modules #else /* vms */ #define MakeDependTarget(component,modules) @@\ DependDependency() @@\ depend:: firstdepend regdepend @@\ imaketmp:=component#_depend.tmp @@\ $(DEPEND) -- $(ALLDEFINES) -- -1 'imaketmp' @@\ $(RM) 'imaketmp';* @@\ @@\ firstdepend:: @@\ imaketmp:=component#_depend.tmp @@\ copy/nolog _NL: 'imaketmp' @@\ @@\ regdepend:: modules @@\ imaketmp:=component#_depend.tmp @@\ open/append dep_file 'imaketmp' @@\ imaketmpsrcs := modules @@\ write dep_file "''f$edit(imaketmpsrcs,"lowercase")'" @@\ close dep_file #endif /* vms */ #endif /* MakeDependTarget */ /* * RegDependTarget - Appends target(s) to a file for eventual depend * processing. This is used to get around DCL's length limitation on * VMS. */ #ifndef RegDependTarget #ifndef vms #define RegDependTarget(component, module) @@\ regdepend:: module #else /* vms */ #deafine RegDependTarget(component, module) @@\ regdepend:: module @@\ imaketmp:=component#_depend.tmp @@\ open/append dep_file 'imaketmp' @@\ imaketmp:=module @@\ write dep_file "''f$edit(imaketmp,"lowercase")'" @@\ close dep_file #endif /* vms */ #endif /* RegDependTarget */ /* * CleanTarget - generate rules to remove specified file */ #ifndef CleanTarget #ifndef vms #define CleanTarget(program) @@\ clean:: program @@\ RemoveTargetProgram(program) #else /* vms */ #define CleanTarget(program) @@\ clean:: program @@\ RemoveTargetProgram(program) #endif /* vms */ #endif /* CleanTarget */ /* * CleanAllTarget - generate rules to clean spurious files */ #ifndef CleanAllTarget #ifndef vms #define CleanAllTarget(filelist) @@\ clean:: @@\ $(RM) *.o mw \#* *~ core @@\ $(RM) filelist #else /* vms */ #define CleanAllTarget(filelist) @@\ clean:: @@\ purge/log *.* @@\ imaketmp:=filelist; @@\ - if imaketmp .nes. ";" then $(RM) 'imaketmp' #endif /* vms */ #endif /* CleanAllTarget */ /* * InstallTarget - generate rules to install specified file */ #ifndef InstallTarget #define InstallTarget(target, dest) @@\ Install:: @@\ $(INSTALL) $(INSTBINFLAGS) target dest #endif /* InstallTarget */ /* * TagsTarget - generate rules to compute tags files for C source code. */ #ifndef vms #ifndef TagsTarget #define TagsTarget() @@\ tags:: @@\ $(TAGS) -w *.[ch] @@\ $(TAGS) -xw *.[ch] > TAGS #endif /* TagsTarget */ #endif /* vms */ /* * BuildMakefileTarget - generate rules to build a Makefile from an Imakefile * and any special imake flags. This is generally done automatically by the * template or by any special Imakefiles. */ #ifndef BuildMakefileTarget #ifndef vms #define BuildMakefileTarget(imakefile,imakeflags) @@\ @@\ Makefile:: @@\ -@if [ -f Makefile ]; then\ @@\ echo " $(RM) Makefile.bak; $(MV) Makefile Makeefile.bak";\ @@\ $(RM) Makefile.bak; $(MV) Makefile Makefile.bak;\ @@\ else exit 0; fi @@\ $(IMAKE_CMD) -f imakefile imakeflags @@\ cat Makefile | sed "s/^ SABERLOAD/ #load/" >Makefile.tmp @@\ $(MV) Makefile.tmp Makefile #else /* vms */ #define BuildMakefileTarget(imakefile,imakeflags) @@\ @@\ Makefile:: imakefile @@\ @- if f$search(f$parse("Makefile.bak")) .nes. "" then $(RM) 'f$parse("Makefile.bak;*")' @@\ @- if f$search(f$parse("Makefile.mms")) .nes. "" then $(MV) Makefile.mms; Makefile.bak @@\ $(IMAKE_CMD) -f imakefile imakeflags @@\ @- purge/noconf/nolog makefile.mms #endif /* vms */ #endif /* BuildMakefileTarget */ /* * MakefileTarget - generate rules to build a normal Makefile. */ #ifndef MakefileTarget #ifndef vms #define MakefileTarget() @@\ BuildMakefileTarget(Imakefile, -s) #else #define MakefileTarget() @@\ BuildMakefileTarget(Imakefile., "/cms") #endif /* vms */ #endif /* MakefileTarget */ /* * AllTarget - generate rules to build necessary things during make all. */ #ifndef AllTarget #ifndef vms #define AllTarget(depends) @@\ all:: depends #else /* vms */ #define AllTarget(depends) @@\ all:: depends @@\ continue #endif /* vms */ #endif /* AllTarget */ /* * LinkSourceFile - snag source file from some other directory */ #ifndef LinkSourceFile #ifndef vms #define LinkSourceFile(src,dir) @@\ src: dir/src @@\ $(RM) $@ @@\ $(LN) $? $@ #else /* vms */ #define LinkSourceFile(src,dir) @@\ src: dir#src @@\ $(LN) $? $@ #endif /* vms */ #endif /* LinkSourceFile */ /* * LinkFileList - link a list of list of files from one place to another */ #ifndef LinkFileList #ifndef vms #define LinkFileList(step,list,sub) @@\ step:: @@\ for i in list; do ($(RM) $$i; set -x; $(LN) sub/$$i .); done #else /* vms */ #define LinkFileList(step,list,sub) /**/ #endif /* vms */ #endif /* LinkFileList */ #ifndef LinkFile #ifndef vms #define LinkFile(step,dest,src) @@\ step:: @@\ i$(RM) dest; set -x; $(LN) src dest #else /* vms */ #define LinkFile(step,file,sub) /**/ #endif /* vms */ #endif /* LinkFile */ /* * First List Target - Insert the .FIRST target for MMS on VMS */ #ifndef FirstListTarget #ifndef vms #define FirstListTarget(firstlist) @@\ first: @@\ echo ".first not available with U*IX make" #else #define FirstListTarget(firstlist) @@\ .first: @@\ firstlist @@\ continue #endif /* vms */ #endif /* FirstListTarget */ #ifndef EnvDef #ifndef vms #define EnvDef(var,value) /* child processes can't create env vars */ #else /* vms */ #define EnvDef(var,value) @@\ env:: @@\ define/job/nolog var value #endif /* vms */ #endif /* EnvDef */ /* * InstallManPageLong - generate rules to install the indicated manual page, * giving it an alternate name. This is used for installing man pages whose * base name without the .man suffix would normally be longer than 8 characters * (the limit for using source code control systems on files systems with * short file names). */ #ifndef InstallManPageLong #ifndef vms #define InstallManPageLong(file,destdir,dest) @@\ install.man:: file.man @@\ $(INSTALL) -c $(INSTMANFLAGS) file.man destdir/dest.ManSuffix #else /* vms */ #define InstallManPageLong(file,destdir,dest) /**/ #endif /* vms */ #endif /* InstallManPageLong */ /* * InstallManPage - generate rules to install the indicated manual page. */ #ifndef InstallManPage #define InstallManPage(file,dest) @@\ InstallManPageLong(file,dest,file) #endif /* InstallManPage */ /* * BuildIncludeFileTarget - generate rules to build an Include file * of dependencies from a Makefile. */ #ifndef BuildIncludeFileTarget #ifndef vms #define BuildIncludeFileTarget(component) /**/ #else /* vms */ #define BuildIncludeFileTarget(component) @@\ CMSCLASS = CURBLD @@\ includes:: @@\ imaketmp:=component#_depend.mms @@\ $(MAKEINCLUDE) 'imaketmp' "$(EXCLUDE_INCLUDES)" @@\ if imakestatus .eqs. "1" then - @@\ $(CMS) RESERVE 'imaketmp' /nooutput "Updated dependencies from makedepend" @@\ if imakestatus .eqs. "1" then - @@\ $(CMS) REPLACE 'imaketmp' /keep "" @@\ if imakestatus .eqs. "1" then - @@\ $(CMS) INSERT GENERATION 'imaketmp' $(CMSCLASS) /always "" @@\ @@\ .include component#_depend.mms #endif /* vms */ #endif /* BuildIncludefileTarget */ /* * NormalLibraryObjectRule - generate make rules to build "normal" objects. */ #ifndef NormalLibraryObjectRule #ifndef vms #define NormalLibraryObjectRule() @@\ .c.o: @@\ $(RM) $@ @@\ $(CC) -c $(CFLAGS) $*.c #else /* vms */ #define NormalLibraryObjectRule() /**/ #endif /* vms */ #endif /* NormalLibraryObjectRule */ *[IMAKE.BINARY]IMAKE.TMPL;1+,&W.(/@ 4((5-V0123KPWO)56BE7 c^89G@HJ/* Imake.tmpl ** Imake Template file (non-platform specific) */ /* Copyright (c) Digital Equipment Corporation, 1992 ** All Rights Reserved. Unpublished rights reserved ** under the copyright laws of the United States. ** ** The software contained on this media is proprietary ** to and embodies the confidential technology of ** Digital Equipment Corporation. Possession, use, ** duplication or dissemination of the software and ** media is authorized only pursuant to a valid writP|~ IMAKE.SAV&WV[IMAKE.BINARY]IMAKE.TMPL;1(ten ** license from Digital Equipment Corporation. ** ** RESTRICTED RIGHTS LEGEND Use, duplication, or ** disclosure by the U.S. Government is subject to ** restrictions as set forth in Subparagraph (c)(1)(ii) ** of DFARS 252.227-7013, or in FAR 52.227-19, as ** applicable. ** ** FACILITY: ** ** Customized Imake for Portable DTM effort ** ** ABSTRACT: ** ** This file contains the template "Makefile" for building ** MMS and Make files using high-level macros (Imake.rules) ** and platform specific definitions (vms.cf & ultrix.cf). ** ** AUTHORS: ** ** Kenneth B. Miller ** ** ** CREATION DATE: 19 November 1990 ** **/ #define YES 1 #define NO 0 /* * To add support for another platform: * * 1. Identify a machine-specific cpp symbol. If your preprocessor * doesn't have any built in, you'll need to add the symbol to the * cpp_argv table in util/imake/imake.c and rebuild imake with the * BOOTSTRAPCFLAGS variable set (see the macII for an example). * * 2. Add all machine-specific cpp symbols (either defined by you or by * the preprocessor or compiler) to the predefs table in * util/makedepend/main.c. * * 3. But a new #ifdef block below that defines MacroIncludeFile and * MacroFile for your new platform and then #undefs the machine- * specific preprocessor symbols (to avoid problems with file names). * * 4. Create a .cf file with the name given by MacroFile. */ #ifdef vms #define MacroIncludeFile "vms.cf" #define MacroFile "vms.cf" #endif /* vms */ #ifdef ultrix #define MacroIncludeFile #define MacroFile ultrix.cf #ifdef vax #undef vax #define VaxArchitecture #define CcCmd gcc #define DefaultCCOptions #define StandardDefines -DUNIX -DHAS_VFORK -D__vax #define MotifRoot /usr/lib #endif #ifdef mips #undef mips #define MipsArchitecture #define CcCmd cc #define DefaultCCOptions -Wf,-XNd18000,-XNh4000 -Olimit 4000 #define StandardDefines -DUNIX -DHAS_VFORK #define MotifRoot /usr/lib #endif #undef ultrix #define UltrixArchitecture #endif #if defined(vax) && !defined(UltrixArchitecture) && !defined(vms) #define MacroIncludeFile #define MacroFile bsd.cf #undef vax #define VaxArchitecture #endif #ifdef sun #define MacroIncludeFile #define MacroFile sun.cf #undef sun #define SunArchitecture #endif /* sun */ #ifdef sparc #define MacroIncludeFile #define MacroFile sparc.cf #define SparcArchitecture #define CcCmd /usr/local/bin/g++ #endif /* Sparc */ #ifdef hpux #define MacroIncludeFile #define MacroFile hp.cf #undef hpux #define HPArchitecture #endif /* hpux */ #ifdef att #define MacroIncludeFile #define MacroFile att.cf #undef att #define ATTArchitecture #endif /* att */ #ifdef apollo #define MacroIncludeFile #define MacroFile apollo.cf #undef apollo #define ApolloArchitecture #endif /* apollo */ #ifdef sony #define MacroIncludeFile #define MacroFile sony.cf #undef sony #define SonyArchitecture #endif /* sony */ #ifdef M4310 #define MacroIncludeFile #define MacroFile pegasus.cf #undef M4310 #define PegasusArchitecture #endif /* M4310 */ #ifdef M4330 #define MacroIncludeFile #define MacroFile m4330.cf #undef M4330 #define M4330Architecture #endif /* M4330 */ #ifdef macII /* A/UX cpp has no unique symbol: build imake with BOOTSTRAPCFLAGS=-DmacII */ #define MacroIncludeFile #define MacroFile macII.cf #undef macII #define MacIIArchitecture #endif /* macII */ #ifdef CRAY #define MacroIncludeFile #define MacroFile cray.cf #undef cra( y #undef CRAY #define CrayArchitecture #endif /* CRAY */ #ifdef sgi #define MacroIncludeFile #define MacroFile sgi.cf #undef sgi #define SGIArchitecture #undef mips #define MipsArchitecture #endif #ifdef stellar #define MacroIncludeFile #define MacroFile stellar.cf #undef stellar #define StellarArchitecture #endif /* * A convenience for people running on rt's since they define ibm032, and for * people running AIX (note that AOS will no longer be supported by IBM). */ #if defined(ibm032) && !defined(ibm) #define ibm #endif #if defined(aix) && !defined(ibm) #define ibm #endif #if defined(ibm) #define MacroIncludeFile #define MacroFile ibm.cf #undef ibm #define IBMArchitecture #ifdef i386 #undef i386 #define PS2Architecture #endif #ifdef ibm032 #undef ibm032 #define RtArchitecture #endif #ifdef aix #undef aix #define AIXArchitecture #endif #endif /* ibm */ #ifndef MacroIncludeFile #define MacroIncludeFile #define MacroFile generic.cf #endif /**************************************************************************** * * * DO NOT MODIFY BELOW THIS LINE * * * ****************************************************************************/ #include MacroIncludeFile /* * defaults for various generic parameters; */ #ifndef SystemV #ifdef SYSV #define SystemV YES /* need system 5 style */ #else #define SystemV NO /* bsd */ #endif #endif #ifndef OSMajorVersion #define OSMajorVersion 0 #endif #ifndef OSMinorVersion #define OSMinorVersion 0 #endif #ifndef UnalignedReferencesAllowed #define UnalignedReferencesAllowed NO /* if arbitrary deref is okay */ #endif #ifndef ExecableScripts #ifdef SYSV #define ExecableScripts NO #else #define ExecableScripts YES /* kernel exec() can handle #! */ #endif #endif #ifndef BourneShell /* to force shell in makefile */ #define BourneShell /bin/sh #endif #ifndef ConstructMFLAGS #if SystemV #define ConstructMFLAGS YES /* build MFLAGS from MAKEFLAGS */ #else #define ConstructMFLAGS NO /* build MFLAGS from MAKEFLAGS */ #endif #endif #ifndef HasLargeTmp #define HasLargeTmp NO /* be paranoid */ #endif #ifndef HasSockets #if SystemV #define HasSockets NO /* not yet... */ #else #define HasSockets YES /* bsd does have them */ #endif #endif #ifndef HasVFork #if SystemV #define HasVFork NO /* not yet... */ #else #define HasVFork YES #endif #endif #ifndef HasPutenv #define HasPutenv NO /* assume not */ #endif #ifndef HasVoidSignalReturn #if SystemV #define HasVoidSignalReturn YES #else #define HasVoidSignalReturn NO /* may or may not be true */ #endif #endif #ifndef HasBsearch #if SystemV #define HasBsearch YES #else #define HasBsearch NO /* stupid systems */ #endif #endif #ifndef HasSaberC #define HasSaberC NO /* for people unclear on the concept */ #endif #ifndef HasFortran #define HasFortran NO #endif #ifndef HasNdbm #define HasNdbm NO #endif #ifndef HasDESLibrary #define HasDESLibrary NO /* if you have any DES library */ #endif #ifndef NeedFunctionPrototypes #define NeedFunctionPrototypes NO #endif #ifndef NeedWidePrototypes #define NeedWidePrototypes YES /* mix and match ANSI-C, non-ANSI */ #endif #ifndef HasSunOSSharedLibraries #define HasSunOSSharedLibraries NO #endif #ifndef SharedCodeDef #if HasSunOSSharedLibraries #define SharedCodeDef -DSHAREDCODE #else #define SharedCodeDef /**/ #endif #endif #ifndef SharedLibraryDef #if HasSunOSSharedLibraries #define SharedLibraryDef -DSUNSHLIB /* eventually will be SVR4SHLIB... */ #ifndef HasSharedLibraries #define HasSharedLibraries YES #endif #else #define SharedLibraryDef /**/ #ifndef HasSharedLibraries #define HasSharedLibraries NO #endif #endif #else #ifndef HasSharedLibraries #define HasSharedLibraries NO #endif #endif #ifndef StripInstalledPrograms #define StripInstalledPrograms NO /* leave symbol table just in case */ #endif #ifndef DestDir #define DestDir /* as nothing */ #endif #ifndef UsrLibDir /* if changed under SunOS with shared */ #define UsrLibDir $(DESTDIR)/usr/lib /* libs, then need to run ldconfig */ #endif /* as root */ #ifndef IncRoot #define IncRoot $(DESTDIR)/usr/include #endif #ifndef UNCOMPRESSPATH #define UNCOMPRESSPATH /usr/ucb/uncompress #endif #ifndef OptimizedCDebugFlags #define OptimizedCDebugFlags -O #endif #ifndef DebuggableCDebugFlags #define DebuggableCDebugFlags -g #endif #ifndef NoOpCDebugFlags #define NoOpCDebugFlags /* as nothing */ #endif #ifndef DefaultCDebugFlags #define DefaultCDebugFlags OptimizedCDebugFlags #endif #ifndef LibraryCDebugFlags #define LibraryCDebugFlags OptimizedCDebugFlags #endif #ifndef DefaultCCOptions #define DefaultCCOptions /* as nothing: this is for floating point, etc. */ #endif #ifndef LibraryCCOptions #define LibraryCCOptions DefaultCCOptions #endif #ifndef ServerCCOptions #define ServerCCOptions DefaultCCOptions #endif #ifndef PexCDebugFlags #define PexCDebugFlags -g #endif #ifndef InstPgmFlags #define InstPgmFlags -s #endif #ifndef InstBinFlags #define InstBinFlags -m 0755 #endif #ifndef InstUidFlags #define InstUidFlags -m 4755 #endif #ifndef InstLibFlags #define InstLibFlags -m 0664 #endif #ifndef InstIncFlags #define InstIncFlags -m 0444 #endif #ifndef InstManFlags #define InstManFlags -m 0444 #endif #ifndef InstDatFlags #define InstDatFlags -m 0444 #endif #ifndef InstKmemFlags #define InstKmemFlags InstUidFlags /* put -g kmem -m 2755 in site.def... */ #endif #ifndef ArCmd #if HasLargeTmp #define ArCmd ar cq /* use /tmp for temp files */ #else #define ArCmd ar clq /* use local dir for temp files */ #endif #endif #ifndef BootstrapCFlags #define BootstrapCFlags /**/ #endif #ifndef CcCmd #define CcCmd cc #endif #ifndef HasGcc #define HasGcc NO #endif #ifndef ServerCcCmd #define ServerCcCmd CcCmd #endif #ifndef LibraryCcCmd #define LibraryCcCmd CcCmd #endif #if HasFortran #ifndef FortranCmd /* for xgks */ #define FortranCmd f77 #endif #ifndef FortranFlags #define FortranFlags /**/ #endif #ifndef FortranDebugFlags #define FortranDebugFlags /**/ /* for -O or -g */ #endif #endif #ifndef AsCmd #define AsCmd as #endif #ifndef CompressCmd #define CompressCmd compress #endif #ifndef CppCmd #define CppCmd /lib/cpp #endif #ifndef PreProcessCmd #define PreProcessCmd CcCmd -E #endif #ifndef InstallCmd #if SystemV #define InstallCmd $(SCRIPTSRC)/bsdinst.sh /* hack should be in project */ #else #define InstallCmd install #endif #endif #ifndef LdCmd #define LdCmd ld #endif #ifndef LintCmd #define LintCmd lint #endif #ifndef LintLibFlag #if SystemV #define LintLibFlag -o #else #define LintLibFlag -C #endif #endif #ifndef LintOpts #if SystemV #define LintOpts -ax #else #define LintOpts -axz #endif #endif #ifndef CpCmd #define CpCmd cp #endif #ifndef LnCmd #if SystemV #define LnCmd ln /* or even cp */ #else #define LnCmd ln -s #endif #endif #ifndef MakeCmd #define MakeCmd make #endif #ifndef MvCmd #define MvCmd mv #endif #ifndef RanlibCmd #if SystemV #define RanlibCmd /bin/true #else #define RanlibCmd ranlib #endif #endif #ifndef RanlibInstFlags #define RanlibInstFlags /**/ #endif #ifndef RmCmd #define RmCmd rm -f #endif #ifndef StandardCppDefines #if SystemV #define StandardCppDefines -DSYSV #else #define StandardCppDefines /**/ #endif #endif #ifndef StandardDefines #if SystemV #define StandardDefines -DSYSV #else #define StandardDefines /**/ #endif #endif #ifndef NdbmDefines #if HasNdbm #define NdbmDefines -DNDBM #else #define NdbmDefines /**/ #endif #endif #ifndef ExtraLibraries #define ExtraLibraries /**/ #endif #ifndef ExtraLoadFlags #define ExtraLoadFlags /**/ #endif #ifndef LdCombineFlags #define LdCombineFlags -X -r #endif #ifndef CompatibilityFlags #define CompatibilityFlags /**/ #endif #ifndef CompatibilityFlags2 #define CompatibilityFlags2 /**/ #endif #ifndef TagsCmd #define TagsCmd ctags #endif #ifndef LoaderLibPrefix #define LoaderLibPrefix /**/ /* cray does -l libX11.a */ #endif #ifndef TOPDIR #define TOPDIR . #endif #ifndef CURDIR #define CURDIR . #endif #ifndef Obj #define Obj o #endif #ifndef Lib #define Lib a #endif #ifndef Exe #define Exe #endif #ifndef FilesToClean #define FilesToClean *.CKP *.ln *.BAK *.bak *.o core errs ,* *~ *.a .emacs_* tags TAGS make.log MakeOut #endif SHELL = BourneShell OBJ = Obj LIB = Lib OPT = Opt EXE = Exe TOP = TOPDIR CURRENT_DIR = CURDIR AR = ArCmd BOOTSTRAPCFLAGS = BootstrapCFlags /* set if cpp doesn't have uniq sym */ CC = CcCmd #if HasFortran FC = FortranCmd FDEBUGFLAGS = FortranDebugFlags FCFLAGS = FortranFlags $(FDEBUGFLAGS) #endif COMPRESS = CompressCmd CPP = CppCmd $(STD_CPP_DEFINES) /* simple filters */ PREPROCESSCMD = PreProcessCmd $(STD_CPP_DEFINES) /* prefered; mdep */ INSTALL = InstallCmd LD = LdCmd LINT = LintCmd LINTLIBFLAG = LintLibFlag LINTOPTS = LintOpts LN = LnCmd MAKE = MakeCmd MV = MvCmd CP = CpCmd RANLIB = RanlibCmd RANLIBINSTFLAGS = RanlibInstFlags RM = RmCmd STD_INCLUDES = StandardIncludes STD_CPP_DEFINES = StandardCppDefines STD_DEFINES = StandardDefines EXTRA_LIBRARIES = ExtraLibraries TAGS = TagsCmd #if ConstructMFLAGS MFLAGS = -$(MAKEFLAGS) #endif #if HasSharedLibraries SHAREDCODEDEF = SharedCodeDef SHLIBDEF = SharedLibraryDef #endif #if !HasVoidSignalReturn SIGNAL_DEFINES = -DSIGNALRETURNSINT #endif /* * The following crap is necessary to support forcing of function prototypes */ #if NeedFunctionPrototypes #define _funcprotodef -DFUNCPROTO #else #define _funcprotodef /**/ #endif #if NeedWidePrototypes #define _wideprotodef /**/ #else #define _wideprotodef -DNARROWPROTO #endif PROTO_DEFINES = _funcprotodef _wideprotodef #undef _funcprotodef #undef _wideprotodef #if StripInstalledPrograms INSTPGMFLAGS = InstPgmFlags /* install flags for stripping */ #else INSTPGMFLAGS = #endif INSTBINFLAGS = InstBinFlags /* install flags for programs */ INSTUIDFLAGS = InstUidFlags /* install flags for setuid programs */ INSTLIBFLAGS = InstLibFlags /* install flags for libraries */ INSTINCFLAGS = InstIncFlags /* install flags for headers */ INSTMANFLAGS = InstManFlags /* install flags for man pages */ INSTDATFLAGS = InstDatFlags /* install flags for data files */ INSTKMEMFLAGS = InstKmemFlags /* install flags for /dev/kmem progs */ DESTDIR = DestDir /* root of install */ LDOPTIONS = /* command-line overwrites this with -g or "/debug" */ CCOPTIONS = DefaultCCOptions /* to distinguish from param flags */ #ifndef vms /* * STD_INCLUDES contains system-specific includes * TOP_INCLUDES specifies how to get to /usr/include or its build substitute * EXTRA_INCLUDES contains project-specific includes set in project incfiles * INCLUDES contains client-specific includes set in Imakefile */ TOP_INCLUDES = /* We don't use relative path's */ ALLINCLUDES = $(INCLUDES) $(STD_INCLUDES) $(TOP_INCLUDES) $(EXTRA_INCLUDES) ALLDEFINES = $(ALLINCLUDES) $(STD_DEFINES) $(PROTO_DEFINES) $(DEFINES) $(COMPATFLAGS) CFLAGS = $(CCOPTIONS) $(CDEBUGFLAGS) $(ALLDEFINES) UIL_INCLUDES = -I/usr/include/X11 -I/usr/include/X11/uil UIL = /usr/bin/uil #endif LINTFLAGS = $(LINTOPTS) -DLINT $(ALLDEFINES) LDLIBS = $(SYS_LIBRARIES) $(EXTRA_LIBRARIES) LDCOMBINEFLAGS = LdCombineFlags MACROFILE = MacroFile RM_CMD = $(RM) FilesToClean CONFIGSRC = ConfigSrcDir UTILSRC = UtilSrcDir DEPENDSRC = DependDir IMAKESRC = ConfigSrcDir MOTIF = MotifRoot IMAKE_DEFINES = /* leave blank, for command line use only */ IMAKE_CMD = $(IMAKE) $(IMAKE_DEFINES) ICONFIGFILES = $(IRULESRC)/Imake.tmpl $(IRULESRC)/Imake.rules $(IRULESRC)/Project.tmpl $(IRULESRC)/site.def $(IRULESRC)/$(MACROFILE) $(EXTRA_ICONFIGFILES) #ifdef VaxArchitecture ARCH = vax #endif #ifdef MipsArchitecture ARCH = mips #endif #include #include INCLUDE_IMAKEFILE #ifdef vms /* * STD_INCLUDES contains system-specific includes * TOP_INCLUDES specifies how to get to /usr/include or its build substitute * EXTRA_INCLUDES contains project-specific includes set in project incfiles * INCLUDES contains client-specific includes set in Imakefile */ TOP_INCLUDES = /* We don't use relativ!e path's */ ALLINCLUDES = $(INCLUDES) $(STD_INCLUDES) $(TOP_INCLUDES) $(EXTRA_INCLUDES) ALLDEFINES = $(STD_DEFINES) $(PROTO_DEFINES) $(DEFINES) $(COMPATFLAGS) CFLAGS = $(CCOPTIONS) $(CDEBUGFLAGS) $(ALLDEFINES) UIL_INCLUDES = $(CURRENT_DIR),ccrb:[$(COMPONENT)],ccr$:[ccr.uigen],decw$include:,sys$library: UIL = UIL/MOTIF #endif /* * These need to be here so that rules in Imakefile occur first; the blank * all is to make sure that an empty Imakefile doesn't default to make clean. */ emptyrule:: #ifndef IHaveSpecialMakefileTarget MakefileTarget() #endif #ifndef vms TagsTarget() #else /* vms */ .suffixes .cxx .hxx .obj .uid .uil .uil~ .uigl .uigl~ .sdl .sdl~ .msg .msg~ \ .opt .opt~ .com .com~ .dat .dat~ .lex .lex~ .idl .idl~ \ .imakefile .imakefile~ .sql .sql~ .sh .sh~ .til .til~ \ .hlb .hlp .hlp~ .man .man~ .rnh .rnh~ \ .col .col~ .cohesion_depends .cohesion_depends~ \ .crl .crl~ .cohesion_functions .cohesion_functions~ .cxx.obj ! Cxx action line support @@\ cxx $(CDEBUGFLAGS) $(MMS$SOURCE) .uil~.uil ! fetch rule for UIL source file @@\ $(CMS) FETCH $(MMS$SOURCE) $(CMSFLAGS) "" .opt~.opt ! fetch rule for LINK options file @@\ $(CMS) FETCH $(MMS$SOURCE) $(CMSFLAGS) "" .com~.com ! fetch rule for DCL command procedure @@\ $(CMS) FETCH $(MMS$SOURCE) $(CMSFLAGS) "" .dat~.dat ! fetch rule for DECwindows resource default @@\ $(CMS) FETCH $(MMS$SOURCE) $(CMSFLAGS) "" .lex~.lex ! fetch rule for LEX source file @@\ $(CMS) FETCH $(MMS$SOURCE) $(CMSFLAGS) "" .man~.man ! fetch rule for U*IX help file @@\ $(CMS) FETCH $(MMS$SOURCE) $(CMSFLAGS) "" .imakefile~.imakefile ! fetch rule for IMAKE source file @@\ $(CMS) FETCH $(MMS$SOURCE) $(CMSFLAGS) "" .uigl~.uigl ! fetch rule for UIGEN source file @@\ $(CMS) FETCH $(MMS$SOURCE) $(CMSFLAGS) "" .sql~.sql ! fetch rule for SQL source file @@\ $(CMS) FETCH $(MMS$SOURCE) $(CMSFLAGS) "" .idl~.idl ! fetch rule for NIDL source file @@\ $(CMS) FETCH $(MMS$SOURCE) $(CMSFLAGS) "" .sh~.sh ! fet%ch rule for SHELL scripts @@\ $(CMS) FETCH $(MMS$SOURCE) $(CMSFLAGS) "" .hlp~.hlp ! fetch rule for Help files @@\ $(CMS) FETCH $(MMS$SOURCE) $(CMSFLAGS) "" .sdl~.sdl ! fetch rule for SDL source file @@\ $(CMS) FETCH $(MMS$SOURCE) $(CMSFLAGS) "" .col~.col ! fetch rule for COL source file @@\ $(CMS) FETCH $(MMS$SOURCE) $(CMSFLAGS) "" .crl~.crl ! fetch rule for CRL source file @@\ $(CMS) FETCH $(MMS$SOURCE) $(CMSFLAGS) "" .rnh~.rnh ! fetch rule for RUNOFF source file @@\ $(CMS) FETCH $(MMS$SOURCE) $(CMSFLAGS) "" .msg~.msg ! fetch rule for MESSAGE source file @@\ $(CMS) FETCH $(MMS$SOURCE) $(CMSFLAGS) "" #endif /* vms */ #ifdef MakefileAdditions MakefileAdditions() #endif #ifdef IHaveSubdirs InstallSubdirs($(SUBDIRS)) InstallManSubdirs($(SUBDIRS)) CleanSubdirs($(SUBDIRS)) TagSubdirs($(SUBDIRS)) MakefileSubdirs($(SUBDIRS)) IncludesSubdirs($(SUBDIRS)) #else Makefiles:: clean:: @@\ $(RM_CMD) #ifndef vms includes:: #else /* vms */ includes:: @@\ ! Includes build completed. #endif /* vms */ #endif /* if subdirectory rules are needed */ #ifndef vms depend:: #else /* vms */ depend:: @@\ ! Depend build completed. #endif /* vms */ #ifndef vms fetch:: #else /* vms */ fetch:: @@\ ! Fetch build completed. #endif /* vms */ #ifndef vms firstdepend:: regdepend:: #else /* vms */ firstdepend:: @@\ ! Firstdepend build completed. regdepend:: @@\ ! Regdepend build completed. #endif /* vms */ #ifndef vms map:: #else /* vms */ map:: @@\ ! Map build completed. #endif /* vms */ *[IMAKE.BINARY]MAKEDEPEND.EXE;1+,kW+./@ 4-V0123 KPWO56\ Yc7e^89G@HJ*0D`0205 Ych(j MAKEDEPENDV1.0< Yc05-13   $ 12@  ? ! VAXCRTL_001! LIBRTL_001O! MTHRTL_001 not in %s /: not in %s /:%s%s not in %s out of space: increase MAXFILES %s includes %s more than once! Already have %s ififdefifndefelseendifdefineundefincludelinepragmaerroridentsccselifejectvax1vms1.obj# DO NOT DELETE THIS LINE -- make depend depends on it.got signal %d makedepend---s flag's value should start %s with '#'.ignoring option %s c$include:sys$library: cannot open "%s" cannot allocate mem cannot read all of %s makefile.mmsmakefile.mmsMakefileMakefile[mM]akefile is not present rcannot open "%s" %s.bakcannot rename %s to %s wcannot open "%s" Adding new delimiting line "%s" and dependencies... %s: errno: %d, %s, line %d: incomplete undef == "%s" %s (reading %s): %s: line %d: unknown directive == "%s" %s (reading %s): %s: line %d: incomplete include == "%s" %s, line %d: unknown directive == "%s" define() botch %s (reading %s): %s: cannot find include file "%s" %s%s : %s # %s includes: # %s4 jN<^Y"[ϡZЬSЬT Uե'PTeaP  P!Uեܕ1 ~T3P[TXTWkV!kﭻRARkR ߩ/X P WЦf W PfVUP Ti1-SSPRRSPbPP/P] P:RRSߩ TPVTvVPSRRS Tjf-SRWW~SjUWVFjTjVWVVV7 TjP1jjP[jWTVkS!kyRARkR ߩ/f W P VУc V PcSUP jߩ 1Rb1PߩTpPST`SP1TbߩjXjj/P[jXTWkV!k啕SASkS ߩ/ XP WЦf WPfVU!P jߩ# Rb1>cYTWTVkS!k#RARkR ߩ/ WWP VУcPV;PcSUPUUPP<^SЬTd//cRTPPQ`"P`/P`/aQPQP`QbRUb1PbQ. TTTRbQ.. TPTT2RTdQ.. TPTTR PU/UbP` P`cRb1mTdPd/:dTd1^ЬP .PP^ЬP. .PP^P<^1U^TЬRdP!dPSJPAPdP ߥ/7 ݬ}P RУc RcPcSP|^ɘVЬTЬUTդ֤ x ~cPrSդ TCUD >ݥݤߦP@ ߦp6 Rդ PBPݠߦ~ RR SS ֤ x ~ݤP RUB^MPF\\` !\\`^yRݬ¡  ^ZDXﭝTSU[.PYȰ>` P}`׬լ1YݼYPY1PЬP-Y1`1мRRR-1tRPP-"mmmmmmmmmmmmmmmmmmmmm%mmmmammmmmi ?PPf1Pfh(1?PмRYi1ȻY1ЬP`Rb PмR׬RPWQgPgPRR1b1Pb  QRQb b bQRgPgPRR1bb1[ЬRbd Rмd׬dP``= PP`PT1URUЬVfbUP1Vм`׬1PY1ЬRbVR׬ݼP31V~P!1PY1ЬRbPR׬м1PP1YzqPYjЬP`jjRb Pмj׬jRb#GȾ6Y2ЬRb[k&Rм[׬PPYݼj׬լ1'[j*Rbb bb b b bNRbboUPbPSbPTTTSݣeSebPݤTmRbQ 4WRݢRP8^W#PUݬPR)ݬ PPPeUPR ݥ P )5TХST ݭSRNPV VTVSTVTݬ>R ХeUP^ЬRR ^RR PPPSRSSP ^ЬRSbbݬPSPSRbPP|^ЬUeTХSTSPХQTVTVRTTS1Pd/GTP`*>TVPT f dhPd*TP`/TVPT f dJd Q d:d 5Qb#*RP`VV V P`V V V `TRTTS1pb#RTQRP<^ЬRRRPSSR/cTT/'T]!T:PSSRcPP/ P]P:cRR/ R]R:SЬRSUUyPPPTUThTRRTRPPR`.PPPR`.`.`RP|^SVЬP `-P`լIUP bPee>fUV5PTP^ЬRRT^nnSn'վ"ݾTPnQPncվQQPݬR PPP|^ЬUЬRPЬRUVТR!bPbVPRS RbSST5ЬPՠ,РSRՠ !PcUPTRSЬPR {ЬRTP^ЬR bbݬ PRPRbPP^2P|^VTЬSЬRТPPUբxPPѢP~բ PxP~ݢPP~PТP PPPQPxQQAQaPxPPPUТPPUPxPPѢP SRbPPP@dPb_RbPPP@dPb_bSPeb b  Rb b RP^T~ݬ ЬSݣPRYЬPSPݣݠd ݣߤݬ ߤz[~ݬ ЬPݠPR=Rݬ*ݢPSݬRSS<^ЬSЬTЬ UѣT UTS"Rգ PUTBRR <^T܊UЬSݣPRRPPѬe2Ьeݣ=ݬ ߤ8\APPR ݣPPP(RP`P`/:`P`R գeݣߤCRգ BP`ߤSRR @@ $l$ld|LdD8 , t ~ @VAXCRTLLIBRTLMTHRTL~~~~*[IMAKE.BINARY]MAKEINCLUDE.COM;1+,Y . /@ 4E -V0123KPWO 56$̔7^89G@HJ$! MAKEINCLUDE.COM $! $! P1 = name of MMS .INCLUDE file to contain dependencies $! P2 = blank separated list of #include directories to exclude $! P3 = name of MMS .MMS file containing dependencies $! $! Open MAKEFILE.MMS and extract all the dependencies that $! were inserted by MAKEDEPEND into a .INCLUDE MMS file. $! $! =============================================================== $! NOTE: In order to prevent spurious CMS RESERVE/REPLACE $! the symbol IMAKESTATUS is set globally here $! because MMS d# -~ IMAKE.SAVY V[IMAKE.BINARY]MAKEINCLUDE.COM;1E 3oesn't preserve the original $STATUS $! which could then be tested in succeeding actions. $! =============================================================== $ $ set noon $ on control_y then goto ABORT $ $! Define common commands to default conditions $ copy := COPY/NOLOG $ close := CLOSE/NOLOG $ delete := DELETE/NOLOG/NOCONF $ open := OPEN $ read := READ $ write := WRITE $ $! Initialize program flags to default conditions $ abort_flag = 0 $ found_flag = 0 $ exclude_flag = 0 $ $ if (P1 .EQS. "") then P1 = "DEPEND.MMS" $ if (P2 .NES. "") $ then $ exclude_flag = 1 $ P2 = " " + F$EDIT(P2,"TRIM,COMPRESS,UPCASE") + " " $ endif $ if (P3 .EQS. "") then P3 = "MAKEFILE.MMS" $ $! Initialize file names to default conditions $ imaketmp = "" $ newmakefile = "" $ newfile = "newmakefile" $ makefile = P3 $ $! Open original MMS file for READ_ONLY to establish INPUT file $ open/read/error=EOF makefile 'makefile' $ $! Open tenative MMS file for APPEND to establish OUTPUT file $ copy _nl: 'makefile' $ newmakefile = F$SEARCH(makefile) $ open/append/error=ABORT newmakefile 'makefile' $ $! Open tenative MMS depend file for APPEND to establish OUTPUT file $ copy _NL: 'P1' $ imaketmp = F$SEARCH(P1) $ open/append/error=ABORT imaketmp 'P1' $ $LOOP: $ read/end=EOF makefile line $ if F$LENGTH(F$EDIT(line,"TRIM,COMPRESS")) .EQ. 0 $ then $ line = "" $ module = line $ else $ if .NOT. found_flag $ then $ if F$LOCATE("# DO NOT DELETE",line) .EQ. 0 $ then $ found_flag = 1 $ newfile = "imaketmp" $ module = "" $ end