# # /emx/src/lib/cdll/makefile # # Build libraries: c_import # Build DLLs: liblibcm.dll, emxlibcs.dll, emxlibc.dll # .INCLUDE: /emx/src/lib/lib0.mak .SOURCE.c: .. .SOURCE.h: .. .SOURCE.s: .. .PHONY: clean default dll-all dll-mt dll-st dll-fwd dll-fwd2 \ import import-st import-mt trace trace-mt trace-st trace-t DLL=\emx\dll\ # TARGET_DLL=$(DLL)$(DLLNAME).dll IMPORT_LIB=$(L)$(DIRNAME)\c_import ASMCMD = $(GCC) -DOMF -Zomf -c -x assembler-with-cpp CCCMD = $(GCC) -DEMX -Zomf -c .c.obj: $(CCCMD) $< .s.obj: $(ASMCMD) $< default: dll-all import-all dll-all: dll-mt dll-st dll-fwd dll-mt .SETDIR=$(CPU): $(MAKE) -f ../makefile $(PASSDOWN) DIRNAME=mt DLLNAME=emxlibcm dll dll-st .SETDIR=$(CPU): $(MAKE) -f ../makefile $(PASSDOWN) DIRNAME=st DLLNAME=emxlibcs dll dll-fwd .SETDIR=$(CPU): $(MAKE) -f ../makefile $(PASSDOWN) DIRNAME=dummy DLLNAME=dummy dll-fwd2 dll-fwd2: $(DLL)emxlibc.dll dll: $(TARGET_DLL) import-all: import-mt import-st import-mt: $(MAKE) DIRNAME=mt DLLNAME=emxlibcm import import-st: $(MAKE) DIRNAME=st DLLNAME=emxlibcs import import: $(IMPORT_LIB).lib $(IMPORT_LIB).a trace: trace-st trace-mt trace-mt: $(MAKE) DLLNAME=emxlibcm trace-t trace-st: $(MAKE) DLLNAME=emxlibcs trace-t trace-t: $(MAP)$(DLLNAME).tdf clean: -del $(CPU)\*.o $(DELOPT) -del $(CPU)\*.obj $(DELOPT) -del $(CPU)tmp.def $(DELOPT) -del tmp.def $(DELOPT) -del tmp.tsf $(DELOPT) -del tmp.tss $(DELOPT) -del trc00??.tff $(DELOPT) # # Create C runtime DLL # DLL_OBJS = $(L)dll0.obj revision.obj old_eh.obj old_io.obj old_nls.obj DLL_LIBS = $(L)gcc.lib $(L)$(DIRNAME)\c_dllrt.lib $(L)$(DIRNAME)\c.lib \ $(L)$(DIRNAME)\emx.lib $(L)emx2.lib $(L)os2.lib $(L)end.lib $(TARGET_DLL): $(DLL_OBJS) $(DLL_LIBS) \ ../emxlibc.def ../emxlibc3.def ../$(DLLNAME).sed sed -f ../$(DLLNAME).sed ../emxlibc.def ../emxlibc3.def >tmp.def link386 /nologo /noi /nod $(DLL_OBJS), $(DLLNAME).dll, \ $(MAP)$(DLLNAME) /map, $(DLL_LIBS), tmp; del tmp.def -emxload -qw copy $(DLLNAME).dll $(TARGET_DLL) del $(DLLNAME).dll revision.obj: revision.c old_io.obj: old_io.c $(I)stdlib.h old_nls.obj: old_io.c # # Create import libraries # $(IMPORT_LIB).a: $(IMPORT_LIB).lib emximp -q -o $(IMPORT_LIB).a $(IMPORT_LIB).lib $(IMPORT_LIB).lib: emxlibc.def $(DLLNAME).sed emxio.def sed -f $(DLLNAME).sed emxlibc.def >tmp.def emximp -o $(IMPORT_LIB).lib tmp.def emxio.def del tmp.def # # Create forwarder emxlibc.dll -> emxlibcm.dll # FWD_OBJS = $(L)dll0.obj revision.obj FWD_LIBS = $(L)c_static.lib $(L)mt\c_import.lib $(L)emx2.lib $(L)end.lib OLD_OBJS = oldcrt1.obj oldcrt3.obj oldcrtin.obj oldctor.obj olddllin.obj \ oldmain.obj oldmkdir.obj oldunwin.obj iodummy.obj $(DLL)emxlibc.dll: ../emxlibc.def ../emxlibc2.def ../emxlibc.sed \ $(FWD_LIBS) $(FWD_OBJS) $(OLD_OBJS) sed -f ../emxlibc.sed ../emxlibc.def ../emxlibc2.def >tmp.def link386 /nologo /noi /nod $(FWD_OBJS) $(OLD_OBJS), \ emxlibc.dll, nul, $(FWD_LIBS), tmp; | sed /L4085/d del tmp.def -emxload -qw copy emxlibc.dll $(DLL)emxlibc.dll del emxlibc.dll iodummy.obj: iodummy.s oldcrt1.obj: oldcrt1.s oldcrt3.obj: oldcrt3.s oldcrtin.obj: oldcrtin.c oldctor.obj: oldctor.c olddllin.obj: olddllin.c oldmain.obj: oldmain.c $(I)stdlib.h oldmkdir.obj: oldmkdir.c $(I)stdlib.h oldunwin.obj: ../oldunwin.s ../../emx_386/syscalls.h $(ASM386H) $(ASMCMD) -I../../emx_386 ../oldunwin.s # # Create trace files (requires trcust.exe of os2pdp.zip) # $(MAP)$(DLLNAME).tdf: $(MAP)$(DLLNAME).map emxlibc.def \ emxlibc.tss $(DLLNAME).tss emxlibc.tsf $(DLLNAME).tsf copy $(DLLNAME).tsf+emxlibc.tsf tmp.tsf copy emxlibc.tss+$(DLLNAME).tss tmp.tss emxtsf -d $(DLLNAME) -w1 tmp.tss $(MAP)$(DLLNAME).map emxlibc.def >>tmp.tsf trcust tmp.tsf $(MAP)$(DLLNAME).tdf /m=$(MAP)$(DLLNAME).map