changeset 15:da741eed6c00

Added linux_lib.mak to build dmd as a library.
author Robert Clipsham <robert@octarineparrot.com>
date Sun, 04 Apr 2010 02:15:33 +0100
parents 2cc604139636
children 5c9b78899f5d
files linux_lib.mak
diffstat 1 files changed, 572 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/linux_lib.mak	Sun Apr 04 02:15:33 2010 +0100
@@ -0,0 +1,572 @@
+
+C=backend
+TK=tk
+ROOT=root
+
+CC=g++ -m32
+#CC=/usr/bin/i686-unknown-linux-gnu-g++
+
+#OPT=-g -g3
+#OPT=-O2
+
+#COV=-fprofile-arcs -ftest-coverage
+
+GFLAGS = -Wno-deprecated -D__near= -D__pascal= -fno-exceptions -g -DDEBUG=1 $(COV)
+#GFLAGS = -Wno-deprecated -D__near= -D__pascal= -fno-exceptions -O2
+
+CFLAGS = $(GFLAGS) -I$(ROOT) -D__I86__=1 -DMARS=1 -DTARGET_LINUX=1 -D_DH
+MFLAGS = $(GFLAGS) -I$C -I$(TK) -D__I86__=1 -DMARS=1 -DTARGET_LINUX=1 -D_DH
+
+CH= $C/cc.h $C/global.h $C/parser.h $C/oper.h $C/code.h $C/type.h \
+	$C/dt.h $C/cgcv.h $C/el.h $C/iasm.h
+TOTALH=
+
+DMD_OBJS = \
+	access.o array.o attrib.o bcomplex.o bit.o blockopt.o \
+	cast.o code.o cg.o cg87.o cgcod.o cgcs.o cgcv.o cgelem.o cgen.o \
+	cgreg.o cgsched.o class.o cod1.o cod2.o cod3.o cod4.o cod5.o \
+	constfold.o irstate.o dchar.o cond.o debug.o \
+	declaration.o dsymbol.o dt.o dump.o e2ir.o ee.o eh.o el.o \
+	dwarf.o enum.o evalu8.o expression.o func.o gdag.o gflow.o \
+	glocal.o gloop.o glue.o gnuc.o go.o gother.o html.o iasm.o id.o \
+	identifier.o impcnvtab.o import.o inifile.o init.o inline.o \
+	lexer.o link.o lstring.o mangle.o mars.o rmem.o module.o msc.o mtype.o \
+	nteh.o cppmangle.o opover.o optimize.o os.o out.o outbuf.o \
+	parse.o ph.o ptrntab.o root.o rtlsym.o s2ir.o scope.o statement.o \
+	stringtable.o struct.o csymbol.o template.o tk.o tocsym.o todt.o \
+	type.o typinf.o util.o var.o version.o strtold.o utf.o staticassert.o \
+	unialpha.o toobj.o toctype.o toelfdebug.o entity.o doc.o macro.o \
+	hdrgen.o delegatize.o aa.o ti_achar.o toir.o interpret.o traits.o \
+	builtin.o clone.o aliasthis.o \
+	man.o arrayop.o port.o response.o async.o \
+	libelf.o elfobj.o
+
+SRC = win32.mak linux.mak osx.mak freebsd.mak solaris.mak \
+	mars.c enum.c struct.c dsymbol.c import.c idgen.c impcnvgen.c \
+	identifier.c mtype.c expression.c optimize.c template.h \
+	template.c lexer.c declaration.c cast.c cond.h cond.c link.c \
+	aggregate.h parse.c statement.c constfold.c version.h version.c \
+	inifile.c iasm.c module.c scope.c dump.c init.h init.c attrib.h \
+	attrib.c opover.c class.c mangle.c bit.c tocsym.c func.c inline.c \
+	access.c complex_t.h irstate.h irstate.c glue.c msc.c ph.c tk.c \
+	s2ir.c todt.c e2ir.c util.c identifier.h parse.h objfile.h \
+	scope.h enum.h import.h mars.h module.h mtype.h dsymbol.h \
+	declaration.h lexer.h expression.h irstate.h statement.h eh.c \
+	utf.h utf.c staticassert.h staticassert.c unialpha.c \
+	typinf.c toobj.c toctype.c tocvdebug.c toelfdebug.c entity.c \
+	doc.h doc.c macro.h macro.c hdrgen.h hdrgen.c arraytypes.h \
+	delegatize.c toir.h toir.c interpret.c traits.c cppmangle.c \
+	builtin.c clone.c lib.h libomf.c libelf.c libmach.c arrayop.c \
+	aliasthis.h aliasthis.c \
+	$C/cdef.h $C/cc.h $C/oper.h $C/ty.h $C/optabgen.c \
+	$C/global.h $C/parser.h $C/code.h $C/type.h $C/dt.h $C/cgcv.h \
+	$C/el.h $C/iasm.h $C/rtlsym.h $C/html.h \
+	$C/bcomplex.c $C/blockopt.c $C/cg.c $C/cg87.c \
+	$C/cgcod.c $C/cgcs.c $C/cgcv.c $C/cgelem.c $C/cgen.c $C/cgobj.c \
+	$C/cgreg.c $C/var.c $C/strtold.c \
+	$C/cgsched.c $C/cod1.c $C/cod2.c $C/cod3.c $C/cod4.c $C/cod5.c \
+	$C/code.c $C/symbol.c $C/debug.c $C/dt.c $C/ee.c $C/el.c \
+	$C/evalu8.c $C/go.c $C/gflow.c $C/gdag.c \
+	$C/gother.c $C/glocal.c $C/gloop.c $C/html.c $C/newman.c \
+	$C/nteh.c $C/os.c $C/out.c $C/outbuf.c $C/ptrntab.c $C/rtlsym.c \
+	$C/type.c $C/melf.h $C/mach.h $C/bcomplex.h \
+	$C/cdeflnx.h $C/outbuf.h $C/token.h $C/tassert.h \
+	$C/elfobj.c $C/cv4.h $C/dwarf2.h $C/cpp.h $C/exh.h $C/go.h \
+	$C/dwarf.c $C/dwarf.h $C/aa.h $C/aa.c $C/tinfo.h $C/ti_achar.c \
+	$C/machobj.c \
+	$(TK)/filespec.h $(TK)/mem.h $(TK)/list.h $(TK)/vec.h \
+	$(TK)/filespec.c $(TK)/mem.c $(TK)/vec.c $(TK)/list.c \
+	$(ROOT)/dchar.h $(ROOT)/dchar.c $(ROOT)/lstring.h \
+	$(ROOT)/lstring.c $(ROOT)/root.h $(ROOT)/root.c $(ROOT)/array.c \
+	$(ROOT)/rmem.h $(ROOT)/rmem.c $(ROOT)/port.h $(ROOT)/port.c \
+	$(ROOT)/gnuc.h $(ROOT)/gnuc.c $(ROOT)/man.c \
+	$(ROOT)/stringtable.h $(ROOT)/stringtable.c \
+	$(ROOT)/response.c $(ROOT)/async.h $(ROOT)/async.c
+
+
+all: dmd
+
+dmd: id.o optabgen $(DMD_OBJS)
+	ar rs libdmd.a $(DMD_OBJS)
+
+clean:
+	rm -f $(DMD_OBJS) dmd optab.o id.o impcnvgen idgen id.c id.h \
+	impcnvtab.c optabgen debtab.c optab.c cdxxx.c elxxx.c fltables.c \
+	tytab.c core \
+	*.cov *.gcda *.gcno
+
+######## optabgen generates some source
+
+optabgen: $C/optabgen.c $C/cc.h $C/oper.h
+	$(CC) $(MFLAGS) $< -o optabgen
+	./optabgen
+
+debtab.c optab.c cdxxx.c elxxx.c fltables.c tytab.c : optabgen
+	./optabgen
+
+######## idgen generates some source
+
+id.h id.c : idgen
+	./idgen
+
+idgen : idgen.c
+	$(CC) idgen.c -o idgen
+
+id.o : id.h id.c
+	$(CC) -c $(CFLAGS) id.c
+
+######### impcnvgen generates some source
+
+impcnvtab.c : impcnvgen
+	./impcnvgen
+
+impcnvgen : mtype.h impcnvgen.c
+	$(CC) $(CFLAGS) impcnvgen.c -o impcnvgen
+
+#########
+
+aa.o: $C/aa.h $C/tinfo.h $C/aa.c
+	$(CC) -c $(MFLAGS) -I. $C/aa.c
+
+access.o: access.c
+	$(CC) -c $(CFLAGS) $<
+
+aliasthis.o: aliasthis.c
+	$(CC) -c $(CFLAGS) $<
+
+array.o: $(ROOT)/array.c
+	$(CC) -c $(GFLAGS) -I$(ROOT) $<
+
+arrayop.o: arrayop.c
+	$(CC) -c $(CFLAGS) $<
+
+async.o: $(ROOT)/async.c
+	$(CC) -c $(GFLAGS) -I$(ROOT) $<
+
+attrib.o: attrib.c
+	$(CC) -c $(CFLAGS) $<
+
+bcomplex.o: $C/bcomplex.c
+	$(CC) -c $(MFLAGS) $C/bcomplex.c
+
+bit.o: expression.h bit.c
+	$(CC) -c -I$(ROOT) $(MFLAGS) bit.c
+
+blockopt.o: $C/blockopt.c
+	$(CC) -c $(MFLAGS) $C/blockopt.c
+
+builtin.o: builtin.c
+	$(CC) -c $(CFLAGS) $<
+
+cast.o: cast.c
+	$(CC) -c $(CFLAGS) $< 
+
+cg.o: fltables.c $C/cg.c
+	$(CC) -c $(MFLAGS) -I. $C/cg.c
+
+cg87.o: $C/cg87.c
+	$(CC) -c $(MFLAGS) $<
+
+cgcod.o: $C/cgcod.c
+	$(CC) -c $(MFLAGS) -I. $<
+
+cgcs.o: $C/cgcs.c
+	$(CC) -c $(MFLAGS) $<
+
+cgcv.o: $C/cgcv.c
+	$(CC) -c $(MFLAGS) $<
+
+cgelem.o: $C/rtlsym.h $C/cgelem.c
+	$(CC) -c $(MFLAGS) -I. $C/cgelem.c
+
+cgen.o: $C/rtlsym.h $C/cgen.c
+	$(CC) -c $(MFLAGS) $C/cgen.c
+
+cgobj.o: $C/cgobj.c
+	$(CC) -c $(MFLAGS) $<
+
+cgreg.o: $C/cgreg.c
+	$(CC) -c $(MFLAGS) $<
+
+cgsched.o: $C/rtlsym.h $C/cgsched.c
+	$(CC) -c $(MFLAGS) $C/cgsched.c
+
+class.o: class.c
+	$(CC) -c $(CFLAGS) $<
+
+clone.o: clone.c
+	$(CC) -c $(CFLAGS) $<
+
+cod1.o: $C/rtlsym.h $C/cod1.c
+	$(CC) -c $(MFLAGS) $C/cod1.c
+
+cod2.o: $C/rtlsym.h $C/cod2.c
+	$(CC) -c $(MFLAGS) $C/cod2.c
+
+cod3.o: $C/rtlsym.h $C/cod3.c
+	$(CC) -c $(MFLAGS) $C/cod3.c
+
+cod4.o: $C/cod4.c
+	$(CC) -c $(MFLAGS) $<
+
+cod5.o: $C/cod5.c
+	$(CC) -c $(MFLAGS) $<
+
+code.o: $C/code.c
+	$(CC) -c $(MFLAGS) $<
+
+constfold.o: constfold.c
+	$(CC) -c $(CFLAGS) $<
+
+irstate.o: irstate.h irstate.c
+	$(CC) -c $(MFLAGS) irstate.c
+
+csymbol.o : $C/symbol.c
+	$(CC) -c $(MFLAGS) $C/symbol.c -o csymbol.o
+
+dchar.o: $(ROOT)/dchar.c
+	$(CC) -c $(GFLAGS) -I$(ROOT) $<
+
+cond.o: cond.c
+	$(CC) -c $(CFLAGS) $<
+
+cppmangle.o: cppmangle.c
+	$(CC) -c $(CFLAGS) $<
+
+debug.o: $C/debug.c
+	$(CC) -c $(MFLAGS) -I. $<
+
+declaration.o: declaration.c
+	$(CC) -c $(CFLAGS) $<
+
+delegatize.o: delegatize.c
+	$(CC) -c $(CFLAGS) $<
+
+doc.o: doc.c
+	$(CC) -c $(CFLAGS) $<
+
+dsymbol.o: dsymbol.c
+	$(CC) -c $(CFLAGS) $<
+
+dt.o: $C/dt.h $C/dt.c
+	$(CC) -c $(MFLAGS) $C/dt.c
+
+dump.o: dump.c
+	$(CC) -c $(CFLAGS) $<
+
+dwarf.o: $C/dwarf.h $C/dwarf.c
+	$(CC) -c $(MFLAGS) $C/dwarf.c
+
+e2ir.o: $C/rtlsym.h expression.h toir.h e2ir.c
+	$(CC) -c -I$(ROOT) $(MFLAGS) e2ir.c
+
+ee.o: $C/ee.c
+	$(CC) -c $(MFLAGS) $<
+
+eh.o : $C/cc.h $C/code.h $C/type.h $C/dt.h eh.c
+	$(CC) -c $(MFLAGS) eh.c
+
+el.o: $C/rtlsym.h $C/el.h $C/el.c
+	$(CC) -c $(MFLAGS) $C/el.c
+
+elfobj.o: $C/elfobj.c
+	$(CC) -c $(MFLAGS) $<
+
+entity.o: entity.c
+	$(CC) -c $(CFLAGS) $<
+
+enum.o: enum.c
+	$(CC) -c $(CFLAGS) $<
+
+evalu8.o: $C/evalu8.c
+	$(CC) -c $(MFLAGS) $<
+
+expression.o: expression.c
+	$(CC) -c $(CFLAGS) $<
+
+func.o: func.c
+	$(CC) -c $(CFLAGS) $<
+
+gdag.o: $C/gdag.c
+	$(CC) -c $(MFLAGS) $<
+
+gflow.o: $C/gflow.c
+	$(CC) -c $(MFLAGS) $<
+
+#globals.o: globals.c
+#	$(CC) -c $(CFLAGS) $<
+
+glocal.o: $C/rtlsym.h $C/glocal.c
+	$(CC) -c $(MFLAGS) $C/glocal.c
+
+gloop.o: $C/gloop.c
+	$(CC) -c $(MFLAGS) $<
+
+glue.o: $(CH) $(TOTALH) $C/rtlsym.h mars.h module.h glue.c
+	$(CC) -c $(MFLAGS) -I$(ROOT) glue.c
+
+gnuc.o: $(ROOT)/gnuc.h $(ROOT)/gnuc.c
+	$(CC) -c $(GFLAGS) $(ROOT)/gnuc.c
+
+go.o: $C/go.c
+	$(CC) -c $(MFLAGS) $<
+
+gother.o: $C/gother.c
+	$(CC) -c $(MFLAGS) $<
+
+hdrgen.o: hdrgen.c
+	$(CC) -c $(CFLAGS) $<
+
+html.o: $(CH) $(TOTALH) $C/html.h $C/html.c
+	$(CC) -c -I$(ROOT) $(MFLAGS) $C/html.c
+
+iasm.o : $(CH) $(TOTALH) $C/iasm.h iasm.c
+	$(CC) -c $(MFLAGS) -I$(ROOT) iasm.c
+
+identifier.o: identifier.c
+	$(CC) -c $(CFLAGS) $<
+
+impcnvtab.o: mtype.h impcnvtab.c
+	$(CC) -c $(CFLAGS) -I$(ROOT) impcnvtab.c
+
+import.o: import.c
+	$(CC) -c $(CFLAGS) $<
+
+inifile.o: inifile.c
+	$(CC) -c $(CFLAGS) $<
+
+init.o: init.c
+	$(CC) -c $(CFLAGS) $<
+
+inline.o: inline.c
+	$(CC) -c $(CFLAGS) $<
+
+interpret.o: interpret.c
+	$(CC) -c $(CFLAGS) $<
+
+lexer.o: lexer.c
+	$(CC) -c $(CFLAGS) $<
+
+libelf.o: libelf.c $C/melf.h
+	$(CC) -c $(CFLAGS) -I$C $<
+
+libmach.o: libmach.c $C/mach.h
+	$(CC) -c $(CFLAGS) -I$C $<
+
+link.o: link.c
+	$(CC) -c $(CFLAGS) $<
+
+lstring.o: $(ROOT)/lstring.c
+	$(CC) -c $(GFLAGS) -I$(ROOT) $<
+
+machobj.o: $C/machobj.c
+	$(CC) -c $(MFLAGS) $<
+
+macro.o: macro.c
+	$(CC) -c $(CFLAGS) $<
+
+man.o: $(ROOT)/man.c
+	$(CC) -c $(GFLAGS) -I$(ROOT) $<
+
+mangle.o: mangle.c
+	$(CC) -c $(CFLAGS) $<
+
+mars.o: mars.c
+	$(CC) -c $(CFLAGS) $<
+
+rmem.o: $(ROOT)/rmem.c
+	$(CC) -c $(GFLAGS) -I$(ROOT) $(ROOT)/rmem.c
+	
+module.o: $(TOTALH) $C/html.h module.c
+	$(CC) -c $(CFLAGS) -I$C module.c
+
+msc.o: $(CH) mars.h msc.c
+	$(CC) -c $(MFLAGS) msc.c
+
+mtype.o: mtype.c
+	$(CC) -c $(CFLAGS) $<
+
+nteh.o: $C/rtlsym.h $C/nteh.c
+	$(CC) -c $(MFLAGS) $C/nteh.c
+
+opover.o: opover.c
+	$(CC) -c $(CFLAGS) $<
+
+optimize.o: optimize.c
+	$(CC) -c $(CFLAGS) $<
+
+os.o: $C/os.c
+	$(CC) -c $(MFLAGS) $<
+
+out.o: $C/out.c
+	$(CC) -c $(MFLAGS) $<
+
+outbuf.o : $C/outbuf.h $C/outbuf.c
+	$(CC) -c $(MFLAGS) $C/outbuf.c
+
+parse.o: parse.c
+	$(CC) -c $(CFLAGS) $<
+
+ph.o: ph.c
+	$(CC) -c $(MFLAGS) $<
+
+port.o: $(ROOT)/port.c
+	$(CC) -c $(GFLAGS) -I$(ROOT) $<
+
+ptrntab.o: $C/iasm.h $C/ptrntab.c
+	$(CC) -c $(MFLAGS) $C/ptrntab.c
+
+response.o: $(ROOT)/response.c
+	$(CC) -c $(GFLAGS) -I$(ROOT) $<
+
+root.o: $(ROOT)/root.c
+	$(CC) -c $(GFLAGS) -I$(ROOT) $<
+
+rtlsym.o: $C/rtlsym.h $C/rtlsym.c
+	$(CC) -c $(MFLAGS) $C/rtlsym.c
+
+s2ir.o : $C/rtlsym.h statement.h s2ir.c
+	$(CC) -c -I$(ROOT) $(MFLAGS) s2ir.c
+
+scope.o: scope.c
+	$(CC) -c $(CFLAGS) $<
+
+statement.o: statement.c
+	$(CC) -c $(CFLAGS) $<
+
+staticassert.o: staticassert.h staticassert.c
+	$(CC) -c $(CFLAGS) staticassert.c
+
+stringtable.o: $(ROOT)/stringtable.c
+	$(CC) -c $(GFLAGS) -I$(ROOT) $<
+
+strtold.o: $C/strtold.c
+	$(CC) -c $C/strtold.c
+
+struct.o: struct.c
+	$(CC) -c $(CFLAGS) $<
+
+template.o: template.c
+	$(CC) -c $(CFLAGS) $<
+
+ti_achar.o: $C/tinfo.h $C/ti_achar.c
+	$(CC) -c $(MFLAGS) -I. $C/ti_achar.c
+
+tk.o: tk.c
+	$(CC) -c $(MFLAGS) tk.c
+
+tocsym.o: $(CH) $(TOTALH) mars.h module.h tocsym.c
+	$(CC) -c $(MFLAGS) -I$(ROOT) tocsym.c
+
+toctype.o: $(CH) $(TOTALH) $C/rtlsym.h mars.h module.h toctype.c
+	$(CC) -c $(MFLAGS) -I$(ROOT) toctype.c
+
+todt.o : mtype.h expression.h $C/dt.h todt.c
+	$(CC) -c -I$(ROOT) $(MFLAGS) todt.c
+
+toelfdebug.o: $(CH) $(TOTALH) mars.h toelfdebug.c
+	$(CC) -c $(MFLAGS) -I$(ROOT) toelfdebug.c
+
+toir.o: $C/rtlsym.h expression.h toir.h toir.c
+	$(CC) -c -I$(ROOT) $(MFLAGS) toir.c
+
+toobj.o: $(CH) $(TOTALH) mars.h module.h toobj.c
+	$(CC) -c $(MFLAGS) -I$(ROOT) toobj.c
+
+traits.o: $(TOTALH) traits.c
+	$(CC) -c $(CFLAGS) $<
+
+type.o: $C/type.c
+	$(CC) -c $(MFLAGS) $C/type.c
+
+typinf.o: $(CH) $(TOTALH) mars.h module.h mtype.h typinf.c
+	$(CC) -c $(MFLAGS) -I$(ROOT) typinf.c
+
+util.o: util.c
+	$(CC) -c $(MFLAGS) $<
+
+utf.o: utf.h utf.c
+	$(CC) -c $(CFLAGS) utf.c
+
+unialpha.o: unialpha.c
+	$(CC) -c $(CFLAGS) $<
+
+var.o: $C/var.c optab.c
+	$(CC) -c $(MFLAGS) -I. $C/var.c
+
+version.o: version.c
+	$(CC) -c $(CFLAGS) $<
+
+######################################################
+
+gcov:
+	gcov access.c
+	gcov aliasthis.c
+	gcov arrayop.c
+	gcov attrib.c
+	gcov bit.c
+	gcov builtin.c
+	gcov cast.c
+	gcov class.c
+	gcov clone.c
+	gcov cond.c
+	gcov constfold.c
+	gcov declaration.c
+	gcov delegatize.c
+	gcov doc.c
+	gcov dsymbol.c
+	gcov dump.c
+	gcov e2ir.c
+	gcov eh.c
+	gcov entity.c
+	gcov enum.c
+	gcov expression.c
+	gcov func.c
+	gcov glue.c
+	gcov iasm.c
+	gcov identifier.c
+	gcov import.c
+	gcov inifile.c
+	gcov init.c
+	gcov inline.c
+	gcov interpret.c
+	gcov irstate.c
+	gcov lexer.c
+	gcov libelf.c
+	gcov link.c
+	gcov macro.c
+	gcov mangle.c
+	gcov mars.c
+	gcov module.c
+	gcov msc.c
+	gcov mtype.c
+	gcov opover.c
+	gcov optimize.c
+	gcov parse.c
+	gcov ph.c
+	gcov scope.c
+	gcov statement.c
+	gcov staticassert.c
+	gcov s2ir.c
+	gcov struct.c
+	gcov template.c
+	gcov tk.c
+	gcov tocsym.c
+	gcov todt.c
+	gcov toobj.c
+	gcov toctype.c
+	gcov toelfdebug.c
+	gcov typinf.c
+	gcov unialpha.c
+	gcov utf.c
+	gcov util.c
+	gcov version.c
+
+#	gcov hdrgen.c
+#	gcov tocvdebug.c
+
+######################################################
+
+zip:
+	-rm -f dmdsrc.zip
+	zip dmdsrc $(SRC)