# line 19 "../../mkworld/macros-GEN.ljm" #ifndef CDependTarget #define CDependTarget(deps) @@\ MkDependCNeededHere(depend) @@\ @@\ depend:: deps @@\ $(MKDEPENDC) $(MKDEPENDCFLAGS) -- $(CFLAGS) -- deps #endif /* CDependTarget */ # line 31 "../../mkworld/macros-GEN.ljm" #ifndef HaskellDependTarget #define HaskellDependTarget(deps) @@\ MkDependHSNeededHere(depend) @@\ @@\ depend:: deps @@\ $(MKDEPENDHS) $(MKDEPENDHSFLAGS) -- $(HCFLAGS) -- deps #endif /* HaskellDependTarget */ # line 43 "../../mkworld/macros-GEN.ljm" #ifndef LitDependTarget #define LitDependTarget(root,rootext) @@\ @@\ depend:: @@\ $(MKDEPENDLIT) $(MKDEPENDLITFLAGS) root.rootext #endif /* LitDependTarget */ # line 61 "../../mkworld/macros-GEN.ljm" #ifndef AllTarget #define AllTarget(depends) @@\ all:: depends #endif # line 71 "../../mkworld/macros-GEN.ljm" #ifndef LinkTarget #define LinkTarget(target,linkto) @@\ AllTarget(target) @@\ ExtraStuffToClean(target) @@\ target:: linkto @@\ RemoveTarget(target) @@\ ${LN} linkto target #endif # line 101 "../../mkworld/macros-GEN.ljm" #ifndef BuildPgm #define BuildPgm(program,compiler,compileropts,objs,libs,deplibs) @@\ AllTarget(program) @@\ ExtraStuffToClean(program) @@\ program:: objs deplibs @@\ RemoveTarget($@) @@\ compiler -o $@ compileropts $(LDOPTIONS) objs libs #endif /* BuildPgm */ # line 121 "../../mkworld/macros-GEN.ljm" #ifndef BuildPgmFromCFiles #define BuildPgmFromCFiles(program,objs,libs,deplibs) @@\ BuildPgm(program,$(CC),$(CFLAGS),objs,libs,deplibs) #endif #ifndef BuildPgmFromOneCFile #define BuildPgmFromOneCFile(program) @@\ SRCS_C = program.c @@\ OBJS_C = program.o @@\ BuildPgm(program,$(CC),$(CFLAGS),$(OBJS_C),/**/,/**/) #endif # line 137 "../../mkworld/macros-GEN.ljm" /*ToDo: cmp => $(CMP)*/ #ifndef YaccRunWithExpectMsg #define YaccRunWithExpectMsg(srcfile,ss,rs) @@\ srcfile.tab.c : srcfile.y @@\ $(RM) srcfile.tab.c srcfile.tab.h-SAVE y.tab.c y.tab.h y.output @@\ @if [ -f srcfile.tab.h ] ; then $(MV) -f srcfile.tab.h srcfile.tab.h-SAVE ; fi @@\ @echo expect ss shift/reduce conflicts and rs reduce/reduce conflicts @@\ $(YACC) $(YFLAGS) srcfile.y @@\ @if cmp -s srcfile.tab.h-SAVE y.tab.h ; then \ @@\ $(MV) -f srcfile.tab.h-SAVE srcfile.tab.h ; \ @@\ else \ @@\ echo $(MV) -f y.tab.h srcfile.tab.h ; \ @@\ $(MV) -f y.tab.h srcfile.tab.h ; \ @@\ chmod 444 srcfile.tab.h ; \ @@\ fi @@\ @$(RM) y.tab.h @@\ $(MV) y.tab.c srcfile.tab.c @@\ @chmod 444 srcfile.tab.c @@\ @@\ srcfile.tab.h : srcfile.tab.c @@\ @echo -n "" /* no-op */ #endif # line 182 "../../mkworld/macros-GEN.ljm" #ifndef BuildPgmFromHaskellModules #define BuildPgmFromHaskellModules(program,objs,libs,deplibs) @@\ BuildPgm(program,$(HC),$(HCFLAGS),objs,libs,deplibs) #endif #ifndef BuildPgmFromOneHaskellModule #define BuildPgmFromOneHaskellModule(program,module,isuf) @@\ SRCS_HS = module.isuf @@\ OBJS_HS = module.o @@\ BuildPgm(program,$(HC),$(HCFLAGS),$(OBJS_HS),,) #endif # line 197 "../../mkworld/macros-GEN.ljm" #if HaveGlasgowHaskell == YES && UseGlasgowHaskell == YES #define _body_HaskellCompileWithSpecifiedFlags(module_isuf,module,isuf,flags) @@\ $(RM) $@ \ HaskellCompilePreProcessing(module_isuf,module,isuf) @@\ $(HC) flags module_isuf -o module.o \ HaskellCompilePostProcessing(module_isuf,module,isuf) #elif HaveChalmersHBC == YES && UseChalmersHBC == YES #define _body_HaskellCompileWithSpecifiedFlags(module_isuf,module,isuf,flags) @@\ @echo $(RM) $@; \ @@\ $(RM) $@; \ \ HaskellCompilePreProcessing(module_isuf,module,isuf) @@\ iface=`basename module_isuf .isuf`.hi ; \ @@\ if [ -f $(@D)/$$iface ] ; then \ @@\ $(RM) $(@D)/$$iface-SAVE ; \ @@\ $(MV) -f $(@D)/$$iface $(@D)/$$iface-SAVE ; \ @@\ fi ; \ @@\ set +e; \ @@\ echo $(HC) flags module_isuf -o module.o; \ @@\ $(HC) flags module_isuf -o module.o; \ @@\ if [ $$? -ne 0 ] ; then \ @@\ $(MV) -f $(@D)/$$iface-SAVE $(@D)/$$iface ; \ @@\ exit 1; \ @@\ fi ; \ @@\ if cmp -s $(@D)/$$iface-SAVE $(@D)/$$iface ; then \ @@\ $(MV) -f $(@D)/$$iface-SAVE $(@D)/$$iface ; \ @@\ else \ @@\ if [ -f $(@D)/$$iface-SAVE ] ; then \ @@\ diff -c1 $(@D)/$$iface-SAVE $(@D)/$$iface ; \ @@\ $(RM) $(@D)/$$iface-SAVE ; \ @@\ fi ; \ @@\ fi \ HaskellCompilePostProcessing(module_isuf,module,isuf) #else /* not GHC or HBC; presumably prototype Glasgow compiler (nhc) */ #define _body_HaskellCompileWithSpecifiedFlags(module_isuf,module,isuf,flags) @@\ @echo $(RM) $@; \ @@\ $(RM) $@; \ \ HaskellCompilePreProcessing(module_isuf,module,isuf) @@\ iface=`basename module_isuf .isuf`.hi ; \ @@\ if [ -f $(@D)/$$iface ] ; then \ @@\ $(RM) $(@D)/$$iface-SAVE ; \ @@\ $(MV) -f $(@D)/$$iface $(@D)/$$iface-SAVE ; \ @@\ cp -p $(@D)/$$iface-SAVE $(@D)/$$iface ; \ @@\ chmod u+w $(@D)/$$iface ; \ @@\ fi ; \ @@\ set +e; \ @@\ echo $(HC) flags module_isuf -o module.o; \ @@\ $(HC) flags module_isuf -o module.o; \ @@\ if [ $$? -ne 0 ] ; then \ @@\ $(RM) STAT ; \ @@\ $(MV) -f $(@D)/$$iface-SAVE $(@D)/$$iface ; \ @@\ exit 1; \ @@\ fi ; \ @@\ if [ -f STAT ] ; then $(MV) STAT module.STAT ; fi ; \ @@\ if [ \( $(@D) != '.' \) -a \( $(@D) != './' \) ] ; then \ @@\ iface=`basename module_isuf .isuf`.hi ; \ @@\ $(UPDATEIFACE) $$iface $(@D)/$$iface ; \ @@\ $(RM) $(@D)/$$iface-SAVE ; \ @@\ fi \ HaskellCompilePostProcessing(module_isuf,module,isuf) #endif /* ! ChalmersHBC or GHC */ # line 270 "../../mkworld/macros-GEN.ljm" #ifndef HaskellCompilePreProcessing #define HaskellCompilePreProcessing(module_isuf,module,isuf) /* nothing */ #endif /* ! HaskellCompilePreProcessing */ #ifndef HaskellCompilePostProcessing #define HaskellCompilePostProcessing(module_isuf,module,isuf) /* nothing */ #endif /* ! HaskellCompilePostProcessing */ # line 281 "../../mkworld/macros-GEN.ljm" #ifndef HaskellCompileWithSpecifiedFlags #define HaskellCompileWithSpecifiedFlags(module,isuf,flags) @@\ module.o : module.isuf \ _body_HaskellCompileWithSpecifiedFlags(module.isuf,module,isuf,flags) #endif /* HaskellCompileWithSpecifiedFlags */ #ifndef HaskellCompileWithExtraFlags #define HaskellCompileWithExtraFlags(module,isuf,flags) @@\ HaskellCompileWithSpecifiedFlags(module,isuf,-c $(HCFLAGS) flags) #endif /* HaskellCompileWithExtraFlags */ #ifndef HaskellCompile #define HaskellCompile(module,isuf) @@\ HaskellCompileWithSpecifiedFlags(module,isuf,-c $(HCFLAGS)) #endif /* HaskellCompile */ # line 301 "../../mkworld/macros-GEN.ljm" #ifndef HaskellCompileWithMoreHeapAndStack #define HaskellCompileWithMoreHeapAndStack(module,isuf,heapsize,stksize) @@\ HaskellCompileWithSpecifiedFlags(module,isuf,-c $(HCFLAGS) HaskellCompilerHeapSize(heapsize) HaskellCompilerStkSize(stksize)) #endif /* HaskellCompileWithMoreHeapAndStack */ #ifndef HaskellCompileWithMoreHeap #define HaskellCompileWithMoreHeap(module,isuf,heapsize) @@\ HaskellCompileWithSpecifiedFlags(module,isuf,-c $(HCFLAGS) HaskellCompilerHeapSize(heapsize)) #endif /* HaskellCompileWithMoreHeap */ # line 314 "../../mkworld/macros-GEN.ljm" #if HaveGlasgowHaskell == YES && UseGlasgowHaskell == YES #define HaskellCompilerHeapSize(size) -Rmax-heapsize size #define HaskellCompilerStkSize(size) -Rmax-stksize size #define HaskellCompilerRunCpp() -cpp #define HaskellEndRTSFlags() /*none*/ #elif HaveChalmersHBC == YES && UseChalmersHBC == YES #define HaskellCompilerHeapSize(size) CAT2(-H,size) #define HaskellCompilerStkSize(size) CAT2(-V,size) #define HaskellCompilerRunCpp() -M #define HaskellEndRTSFlags() - #else /* not GHC or HBC; assume nhc */ #define HaskellCompilerHeapSize(size) CAT2(-H,size) #define HaskellCompilerStkSize(size) /*cant set stksize*/ #define HaskellCompilerRunCpp() /*none*/ #define HaskellEndRTSFlags() - #endif /* not GHC or HBC */ # line 342 "../../mkworld/macros-GEN.ljm" #ifndef ProgramScriptTarget #if HasExecableScripts /* can use #! */ #define ProgramScriptTarget(prog,dst,src,deplist) @@\ AllTarget(dst) @@\ ExtraStuffToClean(dst) @@\ dst:: src deplist @@\ $(RM) $@ @@\ echo "#!"prog > $@ @@\ cat src >> $@ @@\ chmod a+x $@ #else #define ProgramScriptTarget(prog,dst,src,deplist) @@\ AllTarget(dst) @@\ ExtraStuffToClean(dst) @@\ dst:: src deplist @@\ $(RM) $@ @@\ echo \: > $@ @@\ echo 'x=/tmp/xx$$$$' >> $@ @@\ echo "cat > "'$$x'" << 'EOF'" >> $@ @@\ cat src >> $@ @@\ echo EOF >> $@ @@\ echo prog '$$x' '$$@' >> $@ @@\ echo $(RM) '$$x' >> $@ @@\ chmod a+x $@ #endif /* HasExecableScripts */ #endif /* ProgramScriptTarget */ # line 372 "../../mkworld/macros-GEN.ljm" #ifndef MsubTarget #define MsubTarget(dst,src,flags,deplist) @@\ AllTarget(dst) @@\ ExtraStuffToClean(dst) @@\ dst:: src deplist @@\ $(MSUB) flags src > dst #endif # line 388 "../../mkworld/macros-GEN.ljm" #ifndef MsubProgramScriptTarget #if HasExecableScripts /* can use #! */ #define MsubProgramScriptTarget(prog,dst,src,flags,deplist) @@\ AllTarget(dst) @@\ ExtraStuffToClean(dst) @@\ dst:: src deplist @@\ $(RM) $@ @@\ echo "#!"prog > $@ @@\ ${MSUB} flags src >> $@ @@\ chmod a+x $@ #else #define MsubProgramScriptTarget(prog,dst,src,flags,deplist) @@\ AllTarget(dst) @@\ ExtraStuffToClean(dst) @@\ dst:: src deplist @@\ $(RM) $@ @@\ echo \: > $@ @@\ echo 'x=/tmp/xx$$$$' >> $@ @@\ echo "cat > "'$$x'" << 'EOF'" >> $@ @@\ ${MSUB} flags src >> $@ @@\ echo EOF >> $@ @@\ echo prog '$$x' '$$@' >> $@ @@\ echo $(RM) '$$x' >> $@ @@\ chmod a+x $@ #endif /* HasExecableScripts */ #endif /* MsubProgramScriptTarget */ # line 420 "../../mkworld/macros-GEN.ljm" #ifndef MsubMakefileDependentProgramScriptTarget #define MsubMakefileDependentProgramScriptTarget(prog,dst,src,flags,deplist) @@\ MsubProgramScriptTarget(prog,dst,src,flags,deplist) @@\ @@\ Makefile:: @@\ $(RM) dst #endif # line 430 "../../mkworld/macros-GEN.ljm" #ifndef MsubScriptTarget #define MsubScriptTarget(dst,src,flags,deplist) @@\ MsubProgramScriptTarget(${SHELL},dst,src,flags,deplist) #endif # line 445 "../../mkworld/macros-GEN.ljm" #ifndef NormalLibraryTarget #define NormalLibraryTarget(libname,objlist) @@\ AllTarget(CAT2(lib,libname.a)) @@\ ExtraStuffToClean(CAT2(lib,libname.a)) @@\ CAT2(lib,libname.a):: objlist @@\ $(RM) $@ @@\ $(AR) $@ objlist @@\ $(RANLIB) $@ #endif /* NormalLibraryTarget */ # line 465 "../../mkworld/macros-GEN.ljm" #ifndef RuntestsTarget #define RuntestsTarget(depends) @@\ runtests:: CAT2(runtest_,depends) #endif #ifndef RunStdTestTimeCmd #define RunStdTestTimeCmd /*none*/ #endif #ifndef RunStdTest #define RunStdTest(name,prog,teststuff) @@\ RuntestsTarget(name) @@\ CAT2(runtest_,name):: @@\ @RunStdTestTimeCmd $(RUNSTDTEST) prog $(RUNSTDTEST_FLAGS) teststuff #endif /* RunStdTest */ #ifndef AsPartOfTest #define AsPartOfTest(test,cmdline) @@\ RuntestsTarget(test) @@\ CAT2(runtest_,test):: @@\ cmdline #endif /* AsPartOfTest */ # line 499 "../../mkworld/macros-GEN.ljm" #ifndef InstallMsubbedScriptTarget #if HasExecableScripts /* can use #! */ #define InstallMsubbedScriptTarget(prog,dst,src,installdir) @@\ dst-tmp: src @@\ $(RM) $@ @@\ echo "#!"prog > $@ @@\ ${MSUB} INSTALLING=1 src >> $@ @@\ chmod a+x $@ @@\ @@\ InstallTargetWithNameAndFlags(dst-tmp,installdir,dst,) @@\ install:: @@\ $(RM) dst-tmp #else #define InstallMsubbedScriptTarget(prog,dst,src,installdir) @@\ dst-tmp: src @@\ $(RM) $@ @@\ echo \: > $@ @@\ echo 'x=/tmp/xx$$$$' >> $@ @@\ echo "cat > "'$$x'" << 'EOF'" >> $@ @@\ ${MSUB} INSTALLING=1 src >> $@ @@\ echo EOF >> $@ @@\ echo prog '$$x' '$$@' >> $@ @@\ echo $(RM) '$$x' >> $@ @@\ chmod a+x $@ @@\ @@\ InstallTargetWithNameAndFlags(dst-tmp,installdir,dst,) @@\ install:: @@\ $(RM) dst-tmp #endif /* HasExecableScripts */ #endif /* InstallMsubbedScriptTarget */ /* INSTALLATION RULES. InstallTarget() should be a part of nearly all of these, to add the target to the "install" rule. */ #ifndef InstallTarget #define InstallTarget(depends) @@\ install:: CAT2(install_,depends) #endif #ifndef InstallDocTarget #define InstallDocTarget(depends) @@\ install_docs:: CAT2(install_doc_,depends) #endif /* Install a target specifying the flags to use. Many of the following installation rules are instantiated as a particular expansion of this. */ #ifndef InstallTargetWithNameAndFlags #define InstallTargetWithNameAndFlags(target,destdir,new_name,flags) @@\ InstallTarget(new_name) @@\ CAT2(install_,new_name):: target @@\ $(INSTALL) -c flags target destdir/new_name #endif #ifndef InstallTargetWithFlags #define InstallTargetWithFlags(target,dest,flags) @@\ InstallTargetWithNameAndFlags(target,dest,target,flags) #endif #ifndef InstallDocTargetWithFlags #define InstallDocTargetWithFlags(src,presuff,target,postsuff,dest,flags) @@\ InstallDocTarget(CAT3(target,_,postsuff)) @@\ CAT4(install_doc_,target,_,postsuff):: src.presuff @@\ $(INSTALL) -c flags src.presuff dest/target.postsuff #endif /* Install a program */ #ifndef InstallBinaryTarget #define InstallBinaryTarget(program,dest) @@\ InstallTargetWithFlags(program,dest,$(INSTBINFLAGS)) #endif /* Install a setuid/setgid/etc program -- DELETED (partain) */ /* Install an executable script */ #ifndef InstallScriptTarget #define InstallScriptTarget(script,dest) @@\ InstallTargetWithFlags(script,dest,$(INSTSCRIPTFLAGS)) #endif /* Install a library (platform-dependent) */ #ifndef InstallLibraryTarget #define InstallLibraryTarget(libname,dest) @@\ InstallTargetWithFlags(CAT2(lib,libname).a,dest,$(INSTLIBFLAGS)) @@\ ${RANLIB} dest/CAT2(lib,libname).a #endif /* Install an include file */ #ifndef InstallIncludeTarget #define InstallIncludeTarget(file,dest) @@\ InstallTargetWithFlags(file,dest,$(INSTINCFLAGS)) #endif /* Install a non-executable or data file (these are equivalent) */ #ifndef InstallDataTarget #define InstallDataTarget(file,dest) @@\ InstallTargetWithFlags(file,dest,$(INSTDATAFLAGS)) #endif /* Install a set of non-executable files DUMP THIS SOMETIME. */ #ifndef InstallMultNonExecTargets #define InstallMultNonExecTargets(rule,targets,dest) @@\ CAT2(install_,rule):: rule @@\ @case '${MFLAGS}' in *[ik]*) set +e;; esac; \ @@\ for i in targets ;\ @@\ do \ @@\ echo $(INSTALL) -c $(INSTDATAFLAGS) $$i dest/$$i; \ @@\ $(INSTALL) -c $(INSTDATAFLAGS) $$i dest/$$i; \ @@\ done #endif /* Install a man page. THIS IS WRONG - rules in Jmakefiles don't have suffix! file srcsuffix destdir dstsuffix ??? */ #ifndef InstallManPageTarget #define InstallManPageTarget(file,destdir,suffix) @@\ InstallDocTargetWithFlags(file,man,file,suffix,destdir,$(INSTMANFLAGS)) #endif #ifndef InstallInfoFileTarget #define InstallInfoFileTarget(src,target,destdir) @@\ InstallDocTargetWithFlags(src,info,target,info,destdir,$(INSTMANFLAGS)) #endif #ifndef InstallLinkTarget #define InstallLinkTarget(target, linkto, dir) @@\ InstallTarget(target) @@\ CAT2(install_,target):: CAT2(install_,linkto) @@\ RemoveTarget(dir/target) @@\ ${LN} dir/linkto dir/target #endif /* Fake install rules for things not installed anywhere */ #ifndef FakeInstallTarget #define FakeInstallTarget(target) @@\ InstallTarget(target) @@\ CAT2(install_,target):: target @@\ @echo target is not installed anywhere. #endif #ifndef FakeInstallLibrary #define FakeInstallLibrary(libname) @@\ InstallTarget(CAT2(lib,libname).a) @@\ CAT2(install_lib,libname).a:: CAT2(lib,libname).a @@\ @echo CAT2(lib,libname).a is not installed anywhere. #endif # line 689 "../../mkworld/macros-GEN.ljm" #ifndef DocsTarget #define DocsTarget(depends) @@\ docs:: depends #endif /* putting the InfoStuffNeededHere in semi-presumes that LitDocRootTarget is only used once per directory (?) */ #ifndef LitDocRootTargetWithNamedOutput #define LitDocRootTargetWithNamedOutput(rootroot,rootext,rootout) @@\ DocsTarget(rootroot.info rootroot.dvi) @@\ ExtraStuffToClean(rootroot.info rootroot.dvi rootroot.texi rootroot.tex) @@\ LitDependTarget(rootroot,rootext) @@\ @@\ rootroot.info:: rootroot.texi @@\ RemoveTarget($@) @@\ $(MAKEINFO) $(MAKEINFOFLAGS) rootroot.texi \ @@\ && $(POSTMAKEINFO) rootroot.info @@\ @@\ rootroot.dvi:: rootroot.tex @@\ RemoveTarget($@) @@\ $(LTX) rootroot.tex @@\ @@\ rootroot.texi: rootout.itxi @@\ RemoveTarget($@) @@\ $(LIT2TEXI) -S $(LIT2TEXIFLAGS) -N rootroot.info -o rootroot.texi rootout.itxi @@\ @@\ rootout.itxi: rootroot.rootext @@\ RemoveTarget($@) @@\ $(LIT2TEXI) -S -c $(LIT2TEXIFLAGS) -o rootout.itxi rootroot.rootext @@\ @@\ rootroot.tex: rootout.itex @@\ RemoveTarget($@) @@\ $(LIT2LATEX) -S $(LIT2LATEXFLAGS) -o rootroot.tex rootout.itex @@\ @@\ rootout.itex: rootroot.rootext @@\ RemoveTarget($@) @@\ $(LIT2LATEX) -S -c $(LIT2LATEXFLAGS) -o rootout.itex rootroot.rootext #endif /* LitDocRootTargetWithNamedOutput */ #ifndef LitDocRootTarget #define LitDocRootTarget(rootroot,rootext) \ LitDocRootTargetWithNamedOutput(rootroot,rootext,rootroot) #endif /* LitDocRootTarget */ #ifndef VerbatimAndTibTarget #define VerbatimAndTibTarget(root) @@\ VerbatimNeededHere(docs root.tex) @@\ DocsTarget(root.dvi) @@\ ExtraStuffToClean(root.dvi root.tex) #endif /* VerbatimAndTibTarget */ # line 755 "../../mkworld/macros-GEN.ljm" #ifndef ExtraStuffToClean #define ExtraStuffToClean(extra) @@\ clean:: @@\ $(RM) extra #endif /* ExtraStuffToClean */ #ifndef ExtraStuffToBeVeryClean #define ExtraStuffToBeVeryClean(extra) @@\ veryclean:: @@\ $(RM) extra #endif /* ExtraStuffToBeVeryClean */ #ifndef RemoveTarget #if RemoveTargetByMoving #define RemoveTarget(program) \ $(RM) program; if [ -f program ]; then $(MV) program CAT2(program,~); fi #else #define RemoveTarget(program) $(RM) program #endif /* ! RemoveTargetByMoving */ #endif /* RemoveTarget */ /* * CleanTarget - generate rules to remove any garbage files; the #* is here * instead of in the definition of CLEAN_CMD because System V would treat a * pound sign in the CLEAN_CMD variable as a comment. */ #ifndef CleanTarget #define CleanTarget() @@\ clean:: @@\ $(CLEAN_CMD) \#* #endif /* CleanTarget */ /* * VeryCleanTarget - generate rules for "make veryclean"; the idea is * that "make clean" does what "you almost always want" and "make * veryclean" removes ALL generated files. */ #ifndef VeryCleanTarget #define VeryCleanTarget() @@\ veryclean:: @@\ $(CLEAN_CMD) \#* #endif /* VeryCleanTarget */ # line 805 "../../mkworld/macros-GEN.ljm" /* this should normally precede <>TagsTarget commands */ /* those commands *append* to the TAGS file */ #ifndef ClearTagsFile #define ClearTagsFile() @@\ tags:: @@\ $(RM) TAGS; touch TAGS #endif /* * CTagsTarget - generate rules to compute tags files for C source code. * (specified as an arg) * partain: we really expect "etags" to be used... */ #ifndef CTagsTarget #define CTagsTarget(srcs) @@\ tags:: @@\ $(CTAGS) -a $(CTAGSFLAGS) srcs #endif /* CTagsTarget */ /* Similarly for Perl and Haskell */ #ifndef PerlTagsTarget #define PerlTagsTarget(srcs) @@\ tags:: @@\ $(PERLTAGS) $(PERLTAGSFLAGS) srcs #endif /* PerlTagsTarget */ #ifndef HsTagsTarget #define HsTagsTarget(srcs) @@\ tags:: @@\ $(HSTAGS) $(HSTAGSFLAGS) srcs #endif /* HsTagsTarget */ # line 850 "../../mkworld/macros-GEN.ljm" #ifndef BuildMakefileTarget #define BuildMakefileTarget() @@\ JmakeNeededHere(Makefile) @@\ @@\ Makefile:: $(MYJCONFIGFILES) @@\ @@\ Makefile:: @@\ -@if [ -f Makefile ]; then \ @@\ echo " $(RM) Makefile.bak; $(MV) Makefile Makefile.bak"; \ @@\ $(RM) Makefile.bak; $(MV) Makefile Makefile.bak; \ @@\ else exit 0; fi @@\ $(JMAKE_CMD) -DTopDirPwd=$(TOP_PWD) -DTopDir=$(TOP) -DCurDir=$(CURRENT_DIR) @@\ $(JRESTOREDEPS) @@\ @if cmp -s Makefile Makefile.bak; then $(RM) Makefile.bak ; fi @@\ @chmod 444 Makefile @@\ @echo ==== The new Makefile is for\: ==== @@\ @$(MAKE) whoami || \ @@\ ( echo 'Putting old Makefile back (see Makefile.bad)...' && \ @@\ $(MV) Makefile Makefile.bad && \ @@\ $(MV) Makefile.bak Makefile ) @@\ @@\ whoami:: @@\ @echo $(PROJECTNAME), version $(PROJECTVERSION) @@\ @echo project\: $(PROJECTLABEL)\; setup\: $(SETUPLABEL) @@\ @echo now building on a \`$(BUILDPLATFORM)\' host @@\ @echo hoping to run on a \`$(HOSTPLATFORM)\' host #endif /* BuildMakefileTarget */ # line 881 "../../mkworld/macros-GEN.ljm" #ifndef MakefileTarget #define MakefileTarget() @@\ BuildMakefileTarget() #endif /* MakefileTarget */ # line 894 "../../mkworld/macros-GEN.ljm" #ifndef GenerateOptionsMakeVars #define GenerateOptionsMakeVars(PGM,THINGS,AllProjectsPgmThings,PlatformPgmThings,ProjectPgmThings,SetupPgmThings) @@\ CAT4(GLUED_,PGM,_,THINGS) = AllProjectsPgmThings PlatformPgmThings ProjectPgmThings SetupPgmThings $(CAT3(PGM,_,THINGS)) $(CAT4(EXTRA_,PGM,_,THINGS)) #endif # line 912 "../../mkworld/macros-GEN.ljm" #ifndef NamedTargetSubdirs #define NamedTargetSubdirs(name,dirs,verb,flags,subname) @@\ name:: @@\ @case '${MFLAGS}' in *[ik]*) set +e;; esac; \ @@\ for i in dirs ;\ @@\ do \ @@\ (cd $$i ; echo verb "in $(CURRENT_DIR)/$$i..."; \ @@\ $(MAKE) $(MFLAGS) flags subname); \ @@\ done #endif # line 935 "../../mkworld/macros-GEN.ljm" #ifndef NamedMakeSubdirs #define NamedMakeSubdirs(name,dirs) \ NamedTargetSubdirs(name,dirs,"making" name,PassCDebugFlags,all) #endif /* NamedMakeSubdirs */ # line 947 "../../mkworld/macros-GEN.ljm" #ifndef DependSubdirs #define DependSubdirs(dirs) \ NamedTargetSubdirs(depend,dirs,"making dependencies",/**/,depend) #endif /* DependSubdirs */ # line 962 "../../mkworld/macros-GEN.ljm" #ifndef ProjectMakeVarsForAllinSubdirs #define ProjectMakeVarsForAllinSubdirs /*none*/ #endif #ifndef SetupMakeVarsForAllinSubdirs #define SetupMakeVarsForAllinSubdirs /*none*/ #endif #ifndef DoAllinSubdirs #define DoAllinSubdirs(dirs) \ NamedTargetSubdirs(all,dirs,"making all",ProjectMakeVarsForAllinSubdirs SetupMakeVarsForAllinSubdirs,all) #endif /* DoAllinSubdirs */ # line 979 "../../mkworld/macros-GEN.ljm" #ifndef DoDocsinSubdirs #define DoDocsinSubdirs(dirs) \ NamedTargetSubdirs(docs,dirs,"making docs",/*no make flags*/,docs) #endif /* DoDocsinSubdirs */ # line 990 "../../mkworld/macros-GEN.ljm" #ifndef ProjectMakeVarsForRunTestsinSubdirs #define ProjectMakeVarsForRunTestsinSubdirs /*none*/ #endif #ifndef SetupMakeVarsForRunTestsinSubdirs #define SetupMakeVarsForRunTestsinSubdirs /*none*/ #endif #ifndef RunTestsSubdirs #define RunTestsSubdirs(dirs) \ NamedTargetSubdirs(runtests,dirs,"running tests",ProjectMakeVarsForRunTestsinSubdirs SetupMakeVarsForRunTestsinSubdirs,runtests) #endif /* RunTestsSubdirs */ # line 1007 "../../mkworld/macros-GEN.ljm" #ifndef InstallSubdirs #define InstallSubdirs(dirs) \ NamedTargetSubdirs(install,dirs,"installing",INSTROOT='$(INSTROOT)',install) #endif /* InstallSubdirs */ # line 1016 "../../mkworld/macros-GEN.ljm" #ifndef InstallDocsSubdirs #define InstallDocsSubdirs(dirs) \ NamedTargetSubdirs(install_docs,dirs,"installing documentation",INSTROOT='$(INSTROOT)',install_docs) #endif /* InstallDocsSubdirs */ # line 1025 "../../mkworld/macros-GEN.ljm" #ifndef NamedCleanSubdirs #define NamedCleanSubdirs(name,dirs) \ NamedTargetSubdirs(name,dirs,"cleaning",RM='$(RM)',clean) #endif /* NamedCleanSubdirs */ #ifndef CleanSubdirs #define CleanSubdirs(dirs) \ NamedCleanSubdirs(clean,dirs) #endif # line 1039 "../../mkworld/macros-GEN.ljm" #ifndef NamedVeryCleanSubdirs #define NamedVeryCleanSubdirs(name,dirs) \ NamedTargetSubdirs(name,dirs,"being veryclean",RM='$(RM)',veryclean) #endif /* NamedCleanSubdirs */ #ifndef VeryCleanSubdirs #define VeryCleanSubdirs(dirs) \ NamedVeryCleanSubdirs(veryclean,dirs) #endif # line 1053 "../../mkworld/macros-GEN.ljm" #ifndef NamedTagSubdirs #define NamedTagSubdirs(name,dirs) \ NamedTargetSubdirs(name,dirs,"making tags",,tags) #endif /* TagSubdirs */ #ifndef TagSubdirs #define TagSubdirs(dirs) \ NamedTagSubdirs(tags,dirs) #endif # line 1072 "../../mkworld/macros-GEN.ljm" #ifndef MakeMakeSubdirs #define MakeMakeSubdirs(dirs,target) @@\ target:: @@\ @case '${MFLAGS}' in *[ik]*) set +e;; esac; \ @@\ for i in dirs ;\ @@\ do \ @@\ echo "making Makefiles in $(CURRENT_DIR)/$$i..."; \ @@\ case "$$i" in \ @@\ ./?*/?*/?*/?*) newtop=../../../../ sub=subsubsubsub;; \ @@\ ./?*/?*/?*) newtop=../../../ sub=subsubsub;; \ @@\ ./?*/?*) newtop=../../ sub=subsub;; \ @@\ ./?*) newtop=../ sub=sub;; \ @@\ */?*/?*/?*) newtop=../../../../ sub=subsubsubsub;; \ @@\ */?*/?*) newtop=../../../ sub=subsubsub;; \ @@\ */?*) newtop=../../ sub=subsub;; \ @@\ *) newtop=../ sub=sub;; \ @@\ esac; \ @@\ case "$(TOP)" in \ @@\ /?*) newtop= upprefix= ;; \ @@\ *) upprefix=../ ;; \ @@\ esac; \ @@\ $(MAKE) $${sub}dirMakefiles UPPREFIX=$$upprefix NEWTOP=$$newtop \ @@\ MAKEFILE_SUBDIR=$$i NEW_CURRENT_DIR=$(CURRENT_DIR)/$$i;\ @@\ done #endif /* MakeMakeSubdirs */ # line 1104 "../../mkworld/macros-GEN.ljm" #ifndef MakeNsubdirMakefiles #define MakeNsubdirMakefiles() @@\ subdirMakefiles: @@\ $(RM) $(MAKEFILE_SUBDIR)/Makefile.bak @@\ -@if [ -f $(MAKEFILE_SUBDIR)/Makefile ]; then \ @@\ echo " $(MV) $(MAKEFILE_SUBDIR)/Makefile $(MAKEFILE_SUBDIR)/Makefile.bak"; \ @@\ $(MV) $(MAKEFILE_SUBDIR)/Makefile $(MAKEFILE_SUBDIR)/Makefile.bak; \ @@\ else exit 0; fi @@\ cd $(MAKEFILE_SUBDIR); $(JMAKE_CMD) -DTopDirPwd=$(TOP_PWD) -DTopDir=$(UPPREFIX)$(TOP) -DCurDir=$(NEW_CURRENT_DIR); \ @@\ $(NEWTOP)$(JRESTOREDEPS); \ @@\ $(MAKE) $(MFLAGS) NEWTOP= Makefile Makefiles @@\ @@\ subsubdirMakefiles: @@\ $(RM) $(MAKEFILE_SUBDIR)/Makefile.bak @@\ -@if [ -f $(MAKEFILE_SUBDIR)/Makefile ]; then \ @@\ echo " $(MV) $(MAKEFILE_SUBDIR)/Makefile $(MAKEFILE_SUBDIR)/Makefile.bak"; \ @@\ $(MV) $(MAKEFILE_SUBDIR)/Makefile $(MAKEFILE_SUBDIR)/Makefile.bak; \ @@\ else exit 0; fi @@\ cd $(MAKEFILE_SUBDIR); $(JMAKE_CMD) -DTopDirPwd=$(TOP_PWD) -DTopDir=$(UPPREFIX)$(UPPREFIX)$(TOP) -DCurDir=$(NEW_CURRENT_DIR); \ @@\ $(NEWTOP)$(JRESTOREDEPS); \ @@\ $(MAKE) $(MFLAGS) NEWTOP= Makefile Makefiles @@\ @@\ subsubsubdirMakefiles: @@\ $(RM) $(MAKEFILE_SUBDIR)/Makefile.bak @@\ -@if [ -f $(MAKEFILE_SUBDIR)/Makefile ]; then \ @@\ echo " $(MV) $(MAKEFILE_SUBDIR)/Makefile $(MAKEFILE_SUBDIR)/Makefile.bak"; \ @@\ $(MV) $(MAKEFILE_SUBDIR)/Makefile $(MAKEFILE_SUBDIR)/Makefile.bak; \ @@\ else exit 0; fi @@\ cd $(MAKEFILE_SUBDIR); $(JMAKE_CMD) -DTopDirPwd=$(TOP_PWD) -DTopDir=$(UPPREFIX)$(UPPREFIX)$(UPPREFIX)$(TOP) -DCurDir=$(NEW_CURRENT_DIR); \ @@\ $(NEWTOP)$(JRESTOREDEPS); \ @@\ $(MAKE) $(MFLAGS) NEWTOP= Makefile Makefiles @@\ @@\ subsubsubsubdirMakefiles: @@\ $(RM) $(MAKEFILE_SUBDIR)/Makefile.bak @@\ -@if [ -f $(MAKEFILE_SUBDIR)/Makefile ]; then \ @@\ echo " $(MV) $(MAKEFILE_SUBDIR)/Makefile $(MAKEFILE_SUBDIR)/Makefile.bak"; \ @@\ $(MV) $(MAKEFILE_SUBDIR)/Makefile $(MAKEFILE_SUBDIR)/Makefile.bak; \ @@\ else exit 0; fi @@\ cd $(MAKEFILE_SUBDIR); $(JMAKE_CMD) -DTopDirPwd=$(TOP_PWD) -DTopDir=$(UPPREFIX)$(UPPREFIX)$(UPPREFIX)$(UPPREFIX)$(TOP) -DCurDir=$(NEW_CURRENT_DIR); \ @@\ $(NEWTOP)$(JRESTOREDEPS); \ @@\ $(MAKE) $(MFLAGS) NEWTOP= Makefile Makefiles #endif /* MakeNsubdirMakefiles */ # line 1153 "../../mkworld/macros-GEN.ljm" #ifndef MakefileSubdirs #define MakefileSubdirs(dirs) @@\ MakeMakeSubdirs(dirs,Makefiles) @@\ @@\ MakeNsubdirMakefiles() #endif /* MakefileSubdirs */ # line 1162 "../../mkworld/macros-GEN.ljm" #ifndef MakeDirectories #define MakeDirectories(step,dirs) @@\ step:: @@\ $(MKDIRHIER) dirs #endif # line 1170 "../../mkworld/macros-GEN.ljm" #ifndef LinkDirectories #define LinkDirectories(step,dirs,todir) @@\ step:: @@\ @case '${MFLAGS}' in *[ik]*) set +e;; esac; \ @@\ for i in dirs ; \ @@\ do \ @@\ echo "linking $$i to" todir; \ @@\ $(LNDIR) todir $$i; \ @@\ done #endif