home *** CD-ROM | disk | FTP | other *** search
Makefile | 1994-10-24 | 6.7 KB | 282 lines |
- # GNU-Makefile fⁿr CLISP mit GNU-ANSI-C-Compiler
- # J÷rg H÷hle 6.10.94
- # Optionen: GCC26, C20, WIDE, HIGH, KI, KA, LMEM
- # HIGH => C20
- # WIDE => C20
- # keeping intermediate files means keeping assembly files
- ifdef KI
- KA=1
- endif
-
- ifdef HIGH
- C20=1
- endif
- ifdef WIDE
- C20=1
- endif
-
- ifndef C20
- MPFLAGS=-Dmc68010
- MCFLAGS=-m68000
- MAFLAGS=-mc68010
- else
- MPFLAGS=-Dmc68010 -DMC680Y0
- MCFLAGS=-m68020
- MAFLAGS=-mc68020
- endif
-
- WPFLAGS=
- ifdef WIDE
- WPFLAGS=-DWIDE -DHAVE_LONGLONG
- endif
- ifdef HIGH
- WPFLAGS=-DAMIGA3000
- endif
-
- IXCFLAGS= >NIL: -a -.
-
- ifdef GCC26
- # Use GCC259/GCC26
- # Path GNU:bin/ GNU:lib/gcc-lib/mc68000-cbm-amigados/2.5.90/
- IXCONFIG=GNU:ixem/bin/ixconfig
- CC = gcc
- CPP = cpp -undef -D__GNUC__=2 -D__GNUC_MINOR__=5 -lang-c -v
- CC1 = cc1 -version
- AS = as
-
- CPPSTACK = 20000
- CC1STACK = 400000
- LDSTACK = 180000
-
- INCPATH=-I. -IAB:usr/include/Amiga31 -IGCC258:os-include -IBen:p/gccsmalllib/include -IGCC258:include
- LD = ld $(LIBPATH) $(CRT0)
- LIBPATH=-nostdlib -LBen:p/gccsmalllib/lib
- LIBS =-lclisp
- CRT0 =Ben:p/gccsmalllib/lib/crt0.o
-
- else
- # Use GCC25x
- # Path GCC258:bin/ GCC258:lib/gcc-lib/amigados/2.5.8/
- # PATH=/GCC258/bin:/GCC258/lib/gcc-lib/amigados/2.5.8:/C
- IXCONFIG=GCC258:gnu/ixem/bin/ixconfig
- CC = gcc
- CPP = cpp -undef -D__GNUC__=2 -D__GNUC_MINOR__=5 -lang-c -v
- CC1 = cc1 -version
- AS = as
-
- CPPSTACK = 20000
- CC1STACK = 380000
- LDSTACK = 180000
-
- INCPATH=-I. -IAB:usr/include/Amiga31 -IGCC258:os-include -IBen:p/gccsmalllib/include -IGCC258:include
- LD = ld $(LIBPATH) $(CRT0)
- LIBPATH=-nostdlib -LBen:p/gccsmalllib/lib
- LIBS =-lclisp
- CRT0 =Ben:p/gccsmalllib/lib/crt0.o
- endif
-
-
- CPPFLAGS = -Wcomment -nostdinc $(INCPATH) -D__OPTIMIZE__ -DSTDC_HEADERS -Damiga -DNO_CLISP_H $(MPFLAGS) $(WPFLAGS)
- CC1FLAGS = -quiet -O2 -W -Wimplicit -Wreturn-type -Wswitch -Wcomment -Wpointer-arith\
- -ffixed-a4 -fomit-frame-pointer -fno-strength-reduce $(MCFLAGS)
- ASFLAGS = $(MAFLAGS)
- LDFLAGS =
- CFLAGS = $(LDFLAGS) $(CPPFLAGS) $(CC1FLAGS)
-
- TMPDIR = T:
- FSTMPDIR = RAM:
-
- COMMENT = /utils/comment5
- ANSIDECL = /utils/ansidecl
- PRESTACK = 20000
-
- # Remote file prefix
- R=/src/
-
- D_INC_MACHINE = amiga.d
- D_INC_SPECIAL = amiga2.d
- D_INC_FURTHER = avl.d sort.d ari68000.d ari68020.d arilev1e.d arilev1i.d
- D_INC_NORMAL = lispbibl.d fsubr.d subr.d pseudofun.d constsym.d \
- constobj.d constpack.d aridecl.d arilev0.d $(D_INC_MACHINE)
- D_INC_ALL = $(D_INC_NORMAL) $(D_INC_SPECIAL) $(D_INC_FURTHER)
- #D_LISPARIT = arilev1c.d arilev1e.d arilev1i.d arlev1m.d $(D_ARI)
- ifdef C20
- D_AMODULES = ari68020.d
- else
- D_AMODULES = ari68000.d
- endif
- D_EMODULES = # affi.d
- D_CMODULES_SPECIAL = rexx.d
- D_CMODULES = spvw.d spvwtabf.d spvwtabs.d spvwtabo.d \
- eval.d control.d pathname.d stream.d io.d error.d \
- array.d hashtabl.d list.d package.d record.d sequence.d \
- charstrg.d debug.d misc.d predtype.d symbol.d dbxtypes.d \
- lisparit0.d modules.d $(D_CMODULES_SPECIAL) $(D_EMODULES)
- #D_MODULES = $(D_CMODULES) $(D_AMODULES)
- DFILES_OTHERARIT = \
- aridecl.d arilev0.d arilev1.d intelem.d intlog.d intplus.d \
- intcomp.d intbyte.d intmal.d intdiv.d intgcd.d int2adic.d \
- intsqrt.d intprint.d intread.d rational.d sfloat.d ffloat.d \
- dfloat.d lfloat.d flo_konv.d flo_rest.d realelem.d realrand.d \
- realtran.d compelem.d comptran.d
- RDFILES_OTHERARIT = $(addprefix $(R),$(DFILES_OTHERARIT))
-
- C_INC_SPECIAL = $(subst .d,.c,$(D_INC_SPECIAL))
- C_INC_NORMAL = $(subst .d,.c,$(D_INC_NORMAL))
- C_INC_ALL = $(subst .d,.c,$(D_INC_ALL))
-
- OBJECTS_SPECIAL = $(subst .d,.o,$(D_CMODULES_SPECIAL))
- OBJECTS_C = $(subst .d,.o,$(D_CMODULES))
- OBJECTS_A = $(subst .d,.o,$(D_AMODULES))
- OBJECTS = $(OBJECTS_C) $(OBJECTS_A)
-
- LSPFILES = \
- init.lsp defseq.lsp backquot.lsp defmacro.lsp macros1.lsp macros2.lsp \
- defs1.lsp places.lsp floatpri.lsp type.lsp defstruc.lsp format.lsp \
- user1.lsp user2.lsp trace.lsp macros3.lsp config.lsp compiler.lsp \
- timezone.lsp defs2.lsp clos.lsp conditio.lsp defs3.lsp gstream.lsp \
- loop.lsp rexx.lsp
- FASFILES = $(subst .lsp,.fas,$(LSPFILES))
- RFASFILES = $(addprefix $(R),$(FASFILES))
-
- IMEMFILE = interpreted.mem
- CMEMFILE = compiled.mem
- CLISPEXE = lisp.run
- DMEMFILE = compiled.mem_
-
- .SUFFIXES: .d .lsp
-
- # No need to make .d or .lsp files
- %.d:
-
- %.lsp:
-
- #%.c: $(R)%.d
-
- all: init allc allo lisp.run
-
- #init: .NEVER
-
- allc: $(C_INC_ALL)
-
- allo: $(OBJECTS)
-
- # Various dependencies
- $(OBJECTS_C): $(C_INC_NORMAL)
-
- $(OBJECTS_SPECIAL): $(C_INC_SPECIAL)
-
- spvw.o: avl.c sort.c
-
- modules.o: $(R)modules.h
-
- lisparit0.o: ari68000.c ari68020.c arilev1e.c arilev1i.c
-
- .PHONY: all init allc allo clean force
-
- $(R)lisparit1.d: $(R)lisparit.d
- head >$@ -19 $<
- $(R)lisparit2.d: $(R)lisparit.d
- tail >$@ +53 $<
- $(R)lisparit0.d: $(R)lisparit1.d $(RDFILES_OTHERARIT) $(R)lisparit2.d
- join $(R)lisparit1.d $(RDFILES_OTHERARIT) $(R)lisparit2.d as $@
-
- # In order to save diskspace, we don't keep intermediary .c, .i or .s files
-
- # Make all include files
- $(C_INC_ALL): %.c: $(R)%.d
- stack $(PRESTACK)
- # Named pipes make it slower!
- # run $(COMMENT) $(R)$*.d >FIFO:prepclisp/mwek
- # $(ANSIDECL) <FIFO:prepclisp/r >$@
- # run $(COMMENT) $(R)$*.d >PIPE:prepclisp
- # $(ANSIDECL) <PIPE:prepclisp/r >$@
- $(COMMENT) $(R)$*.d $(FSTMPDIR)$*.dc
- $(ANSIDECL) <$(FSTMPDIR)$*.dc >$@
- delete $(FSTMPDIR)$*.dc
-
- # Make all assembly objects
- # Here only when .c is available
- $(OBJECTS_A): %.o: %.c
- stack $(CPPSTACK)
- $(CPP) -DUNDERSCORE $(CPPFLAGS) $*.c $(TMPDIR)$*.s
- stack $(CC1STACK)
- $(AS) $(ASFLAGS) -o $@ $(TMPDIR)$*.s
- delete $(TMPDIR)$*.s
-
- # Make all C objects
- $(OBJECTS_C) testd.o testn.o: %.o: $(R)%.d
- @date
- stack $(PRESTACK)
- $(COMMENT) $(R)$*.d $(FSTMPDIR)$*.dc
- $(ANSIDECL) <$(FSTMPDIR)$*.dc >$(TMPDIR)$*.c
- delete $(FSTMPDIR)$*.dc
- ifdef LMEM
- @avail >nil: flush
- @$(IXCONFIG) $(IXCFLAGS)
- endif
- stack $(CPPSTACK)
- $(CPP) $(CPPFLAGS) $(TMPDIR)$*.c $(TMPDIR)$*.i
- ifndef KI
- delete $(TMPDIR)$*.c
- endif
- ifdef LMEM
- @avail >nil: flush
- @$(IXCONFIG) $(IXCFLAGS)
- endif
- stack $(CC1STACK)
- -$(CC1) $(CC1FLAGS) -o $(TMPDIR)$*.s $(TMPDIR)$*.i
- ifndef KI
- delete $(TMPDIR)$*.i
- endif
- ifdef YES_HIGH
- copy $(TMPDIR)$*.s to $(FSTMPDIR)$*.es
- # Some lines are too long for Edit
- sed >$(TMPDIR)$*.s -e "s/^I.even/^I.align 2/" $(FSTMPDIR)$*.es
- delete $(FSTMPDIR)$*.es
- endif
- $(AS) $(ASFLAGS) -o $@ $(TMPDIR)$*.s
- ifndef KA
- delete $(TMPDIR)$*.s
- endif
-
- lisp.run: $(OBJECTS)
- @date
- stack $(LDSTACK)
- $(LD) $(LDFLAGS) -o $@ $(OBJECTS) $(LIBS)
-
- testd: testd.o
- stack $(LDSTACK)
- $(LD) $(LDFLAGS) -o $@ $*.o $(LIBS)
-
- testn: testn.o
- stack 300000
- $(CC) -v -o $@ $*.o -lc
-
- # make an interpreted world
- $(IMEMFILE):
- @avail >nil: flush
- @date
- $(CLISPEXE) -x (cd"/src/")(load"init.lsp")(saveinitmem)(exit)
- @date
- mv $(R)lispinit.mem $@
-
- # compile LISP files
- $(RFASFILES): %.fas: %.lsp
- @avail >nil: flush
- @date
- $(CLISPEXE) -M $(DMEMFILE) -c $*.lsp
- @date
-
- # make a compiled world
- $(CMEMFILE): $(RFASFILES)
- @avail >nil: flush
- @date
- $(CLISPEXE) -x (cd"/src/")(load"init.fas")(saveinitmem)(exit)
- @date
- mv $(R)lispinit.mem $@
-
- clean:
- delete $(C_INC_ALL) $(OBJECTS)
- force:
-