home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / plbin.zip / pl / src / Makefile < prev    next >
Makefile  |  1993-02-23  |  6KB  |  254 lines

  1.  
  2. # /* SWI-Prolog 1.6        Toplevel Makefile                            */
  3.  
  4. # /* This is the toplevel makefile for SWI Prolog.                      */
  5. # /* This makefile is almost independent of your operating system!      */
  6. # /* During a first pass we collect all necessary information like      */
  7. # /* paths and compiler directives from your configuration and create   */
  8. # /* a tailor-made version 'xmakefile' of this makefile.                */
  9.  
  10. # /* Setup your configuration in the following files                    */
  11. # /* ../config.h     system information like paths (global!)            */
  12. # /* md.h            machine dependent information                      */
  13.  
  14. # Change cc to gcc in the line below if necessary
  15. CPP=cc -E
  16. AWK=awk
  17.  
  18. # DO NOT CHANGE BELOW THIS LINE
  19.  
  20. #include "make.h"
  21. CC=M_CC
  22. OPTIMIZE=M_OPTIMIZE
  23. CFLAGS=${OPTIMIZE} M_CFLAGS
  24. LDFLAGS=M_LDFLAGS
  25. LIBS=M_LIBS
  26. #ifdef UNEXEC_SOURCE
  27. UNEXEC=UNEXEC_SOURCE
  28. #else
  29. UNEXEC=gnu/unexec.c
  30. #endif
  31. INSTALL=cp
  32. #ifdef FOREIGN_PL
  33. FOREIGN=FOREIGN_PL
  34. #else
  35. FOREIGN=foreign.pl
  36. #endif
  37.  
  38. #if OS2MAKE
  39. DUMP=cmd /C .\dump.cmd
  40. #else
  41. DUMP=./dump
  42. #endif
  43.  
  44. SYSTEMHOME=M_SYSTEMHOME
  45. SYSTEMDIR=M_SYSTEMDIR
  46. DEFSTARTUP=M_DEFSTARTUP
  47. PROLOG=M_PROLOG
  48. BINDIR=M_BINDIR
  49. SEP=M_SEP
  50. SYS=M_SYS
  51.  
  52. STARTUPDIR=$(SYSTEMHOME)/startup
  53. OS-STARTUPDIR=$(SYSTEMDIR)$(SEP)startup
  54. STARTUPPATH=$(STARTUPDIR)$/startup.MACHINE
  55. OS-STARTUPPATH=$(OS-STARTUPDIR)$(SEP)startup.MACHINE
  56. RUNTIMEDIR=$(SYSTEMHOME)/runtime/MACHINE
  57. OS-RUNTIMEDIR=$(SYSTEMDIR)$(SEP)runtime$(SEP)MACHINE
  58. RUNTIME=$(RUNTIMEDIR)$(SEP)pl.o
  59. LIBRARYDIR=$(SYSTEMHOME)/library
  60. OS-LIBRARYDIR=$(SYSTEMDIR)$(SEP)library
  61.  
  62. PB=../boot
  63. BINLIB=libPL.a
  64. EXPORTS=../include/SWI-Exports
  65. CINCLUDE=../include/SWI-Prolog.h
  66.  
  67.  
  68. OBJ=    pl-wam.o pl-save.o \
  69.     pl-atom.o pl-alloc.o pl-arith.o pl-bag.o pl-comp.o pl-dump.o \
  70.     pl-dwim.o pl-ext.o pl-file.o pl-flag.o pl-fmt.o pl-funct.o \
  71.     pl-gc.o pl-glob.o pl-index.o pl-itf.o pl-list.o pl-load.o \
  72.     pl-modul.o pl-op.o pl-os.o pl-prims.o pl-pro.o pl-proc.o \
  73.     pl-prof.o pl-read.o pl-rec.o pl-setup.o pl-sys.o pl-table.o \
  74.     pl-trace.o pl-util.o pl-wic.o pl-write.o pl-term.o
  75. DEPOBJ=    pl-main.o
  76. EXT=    pl-extend.o
  77.  
  78. PLINIT=    $(PB)/init.pl
  79. #if OS2MAKE
  80. PLBOOT1=$(PB)/syspred.pl $(PB)/toplevel.pl $(PB)/listing.pl
  81. PLBOOT2=$(PB)/edit.pl $(PB)/sort.pl $(PB)/bags.pl $(PB)/apply.pl
  82. PLBOOT3=$(PB)/list.pl $(PB)/writef.pl $(PB)/history.pl $(PB)/portray.pl
  83. PLBOOT4=$(PB)/profile.pl $(PB)/dwim.pl $(PB)/$(FOREIGN) $(PB)/parms.pl
  84. PLBOOT5=$(PB)/autoload.pl
  85. #else
  86. PLBOOT= $(PB)/syspred.pl $(PB)/toplevel.pl $(PB)/listing.pl \
  87.     $(PB)/edit.pl $(PB)/sort.pl $(PB)/bags.pl $(PB)/apply.pl \
  88.     $(PB)/list.pl $(PB)/writef.pl $(PB)/history.pl $(PB)/portray.pl \
  89.     $(PB)/profile.pl $(PB)/dwim.pl $(PB)/$(FOREIGN) $(PB)/parms.pl \
  90.     $(PB)/autoload.pl
  91. #endif
  92.  
  93. SRC=    $(OBJ:.o=.c) $(DEPOBJ:.o=.c) $(EXT:.o=.c)
  94.  
  95. #if OS2MAKE
  96. PARMS=    -DSYSTEMHOME=""$(SYSTEMHOME)"" \
  97.     -DDEFSTARTUP=""$(DEFSTARTUP)""
  98. #else
  99. PARMS=    -DSYSTEMHOME=\"$(SYSTEMHOME)\" \
  100.     -DDEFSTARTUP=\"$(DEFSTARTUP)\"
  101. #endif
  102.  
  103. TARGETS=    $(EXPORTS) $(CINCLUDE) system startup pl-bite
  104.  
  105. all:        xmakefile
  106.         make -f xmakefile ${TARGETS}
  107.  
  108. #if OS2MAKE    /* GNU Make *NEEDS* Unix(tm)-style names as targets! */
  109. startup:    $(SYSTEMHOME) $(STARTUPDIR) $(STARTUPPATH)
  110. #else
  111. startup:    $(SYSTEMDIR) $(OS-STARTUPDIR) $(OS-STARTUPPATH)
  112. #endif
  113. system:        $(SYS)
  114.  
  115. runtime:    all
  116.         make -f xmakefile xruntime
  117. xruntime:    $(RUNTIME)
  118.         
  119.  
  120. xmakefile:    Makefile md.h ../config.h
  121.         @-rm -f junk.c make.h
  122.         @sed -f simpl.sed md.h ../config.h > make.h
  123.         @sed -f make.sed Makefile > junk.c
  124.         @$(CPP) junk.c | \
  125.         sed -f strip.sed | \
  126.         sed -n -f extract.sed > xmakefile
  127.         @rm -f junk.c make.h
  128.  
  129. $(SYS):        $(OBJ) $(DEPOBJ) $(EXT)
  130.         $(CC) $(LDFLAGS) -o $(SYS) $(OBJ) $(DEPOBJ) $(EXT) $(LIBS)
  131.  
  132. #if OS2MAKE
  133. $(SYSTEMHOME):
  134. #else
  135. $(SYSTEMDIR):
  136. #endif
  137.         -mkdir $(SYSTEMDIR)
  138. #if OS2MAKE
  139. $(STARTUPDIR):
  140. #else
  141. $(OS-STARTUPDIR):    
  142. #endif
  143.         -mkdir $(OS-STARTUPDIR)
  144.  
  145. #if OS2MAKE
  146. $(STARTUPPATH):        $(PLBOOT) $(PLINIT) pl-wam.o
  147. #else
  148. $(OS-STARTUPPATH):    $(PLBOOT) $(PLINIT) pl-wam.o
  149. #endif
  150. #if OS2MAKE
  151.         echo .\\$(SYS) -O -o $(OS-STARTUPPATH) -b $(PLINIT) -c > xxfoo
  152.         echo $(PLBOOT1) >> xxfoo
  153.         echo $(PLBOOT2) >> xxfoo
  154.         echo $(PLBOOT3) >> xxfoo
  155.         echo $(PLBOOT4) >> xxfoo
  156.         echo $(PLBOOT5) >> xxfoo
  157.         cat xxfoo | sed -e s/$$/\\/ > xxfoo.c
  158.         $(CPP) -P xxfoo.c > boot.cmd
  159.         rm xxfoo.c xxfoo
  160.         cmd /C boot
  161. #else
  162.         ./$(SYS) -O -o $(OS-STARTUPPATH) -b $(PLINIT) -c $(PLBOOT)
  163. #endif OS2MAKE
  164.  
  165. $(RUNTIMEDIR):
  166.         @-mkdir $(SYSTEMDIR)$(SEP)runtime
  167.         @-mkdir $@
  168.  
  169. $(RUNTIME):    $(OBJ) $(DEPOBJ) $(RUNTIMEDIR)
  170.         $(LD) -r -o $@ $(OBJ) $(DEPOBJ)
  171.  
  172. $(EXPORTS):    xmakefile pl-export
  173.         echo \#\!$(BINDIR)$(SEP)$(PROLOG) > $(EXPORTS)
  174.         cat pl-export >> $(EXPORTS)
  175.  
  176. $(CINCLUDE):    pl-itf.h
  177.         cp pl-itf.h $(CINCLUDE)
  178.  
  179.  
  180. pl-main.o:    xmakefile pl-main.c pl-main.h
  181.         $(CC) -c $(CFLAGS) $(PARMS) pl-main.c
  182.  
  183. pl-funct.o:    pl-funct.ih
  184. pl-atom.o:    pl-funct.ih
  185. pl-dump.o:    gnu/getpagesize.h $(UNEXEC)
  186. pl-main.o:    Makefile pl-itf.h
  187.  
  188. pl-funct.ih:    ATOMS
  189.         $(AWK) -f defatom.awk < ATOMS
  190.  
  191. pl-atom.ih:    ATOMS
  192.         $(AWK) -f defatom.awk < ATOMS
  193.  
  194. pl-bite:    pl-bite.c
  195.         $(CC) -o pl-bite pl-bite.c
  196.  
  197. install:    xmakefile
  198.         make -f xmakefile xinstall
  199.  
  200. xinstall:    $(RUNTIMEDIR) $(LIBRARYDIR)
  201.         @-mkdir $(BINDIR)
  202. #if O_SAVE
  203.         $(INSTALL) $(SYS) $(RUNTIMEDIR)
  204.         $(DUMP) $(OS-RUNTIMEDIR)$(SEP)$(SYS) $(BINDIR)$(SEP)$(PROLOG)
  205. #else
  206.         rm -f $(BINDIR)$(SEP)$(PROLOG)
  207.         
  208. #if O_STORE_PROGRAM && !O_INSTALL_DONOT_STORE
  209.         $(DUMP) $(OS-RUNTIMEDIR)$(SEP)$(SYS) $(BINDIR)$(SEP)$(PROLOG)
  210. #else
  211.         $(INSTALL) $(SYS) $(BINDIR)$(SEP)$(PROLOG)
  212. #endif
  213. #endif
  214. #if OS2MAKE
  215.         $(INSTALL) pl-bite $(BINDIR)$(SEP)pl-bite.exe
  216. #else
  217.         $(INSTALL) pl-bite $(BINDIR)$(SEP)pl-bite
  218. #endif
  219. #if !OS2MAKE
  220.         chmod 755 $(BINDIR)$(SEP)$(PROLOG) $(BINDIR)$(SEP)pl-bite
  221. #endif
  222. $(LIBRARYDIR):
  223.         mkdir $(OS-LIBRARYDIR)
  224.         $(INSTALL) -r ..$(SEP)library$(SEP)* $(OS-LIBRARYDIR)
  225.  
  226. tags:        TAGS
  227.  
  228. TAGS:        $(SRC)
  229.         etags $(SRC)
  230.  
  231. clean:        xmakefile
  232.         make -f xmakefile xclean
  233.  
  234. xclean:
  235.         rm -f *.o a.out core pl-bite
  236.         rm -f $(SYS)
  237. .c.s:
  238.         $(CC) -S $(CFLAGS) $*.c
  239.  
  240. .c.o:
  241.         $(CC) -c $(CFLAGS) $*.c
  242.  
  243. saber_src:
  244.         #load $(OBJ) $(DEPOBJ) $(CFLAGS) $(LIBS)
  245.  
  246.  
  247.  
  248.  
  249.  
  250.  
  251.  
  252.  
  253.  
  254.