Changeset 430
- Timestamp:
- Jul 23, 2003, 3:21:41 AM (22 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
TabularUnified trunk/src/emx/src/lib/libc.smak ¶
-
Property cvs2svn:cvs-rev
changed from
1.11
to1.12
r429 r430 40 40 include mklib.smak 41 41 42 42 43 #------------------------------------------------------ 43 44 # Now define the rules for building libc$(VERSION).dll 45 # bird: Build as OMF (#564). 44 46 #------------------------------------------------------ 45 LIBC.DLL = $.aout/libc$(VH)$(VM).dll 46 LIBC.IMPLIB = $.aout/c_dll.a $.omf/c_dll.lib 47 .TKIND := omf 48 LIBC.DLL = $.omf/libc$(VH)$(VM).dll 49 LIBC.DEF = $.omf/libc.def 50 LIBC.IMPLIB = $.omf/c_dll.lib $.aout/c_dll.a 51 .OBJS := $(patsubst %.o,%.obj,$(subst /aout/,/omf/,$(.OBJS))) 52 .DEPS := $(patsubst %.o,%.obj,$(subst /aout/,/omf/,$(.DEPS))) 53 LIBC.DLL.OBJS := $(patsubst %.o,%.obj,$(subst /aout/,/omf/,$(LIBC.DLL.OBJS))) 54 .DIRS := $(sort $(dir $(.OBJS) $(.DEPS) $(LIBC.DLL.OBJS))) 55 TARGDIRS += $(.DIRS) 47 56 48 DO.HELP.MODULES += $(call ECHO, libc-dll - The dynamic C library (.dll))$(NL) 49 50 INS.FILES += $(INS)lib/$(notdir $(LIBC.DLL)) \ 51 $(addprefix $(INS)lib/,$(notdir $(LIBC.IMPLIB))) 52 53 $(INS)lib/$(notdir $(LIBC.DLL)): $(LIBC.DLL) 54 $(call CP,$<,$@) 55 $(addprefix $(INS)lib/,$(notdir $(LIBC.IMPLIB))): $(LIBC.IMPLIB) 56 $(call CP,$^,$(dir $@)) 57 58 .PHONY: libc-dll 59 all: libc-dll 60 libc-dll: emxbind emxexp app alias libc os2 $(LIBC.DLL) $(LIBC.IMPLIB) 61 62 # Never strip symbols before running through emxbind! 63 $(LIBC.DLL): $.aout/src/lib/startup/386/dll0.o $(.OBJS) $(.DEPS) \ 64 $(LIBC.DLL.OBJS) $.aout/libc.def 65 $(LD) $(subst -s,,$(LDFLAGS.DLL)) -nostdlib -o __libc__ $^ \ 66 -L$.aout -los2 -lgcc -lgcc_eh -lc_alias 67 $(call DO.EMXBIND,-d$.aout/libc.def __libc__) 68 @$(call RM,__libc__) 57 58 # LIBC linking. 59 $(LIBC.DLL): $.omf/src/lib/startup/386/dll0.obj $(.OBJS) $(.DEPS) $(LIBC.DLL.OBJS) $(LIBC.DEF) 60 $(LD) -o $(@:.dll=.dbg) -Zomf $(subst -s,,$(LDFLAGS.DLL)) -nostdlib $^ -L$.omf -los2 -lgcc -lgcc_eh -lc_alias 61 cp $(@:.dll=.dbg) $@ 69 62 ifeq ($(MODE),opt) 70 63 lxlite /X /AS $@ 71 64 endif 72 65 73 # The dllinit hacks are only temporarily... (I hope) 74 $(LIBC.IMPLIB): $.aout/libc.def $.aout/src/lib/startup/dllinit.o 75 emximp -o $@ $.aout/libc.def 76 $(EMXOMF) -o $.omf/src/lib/startup/dllinit.obj $.aout/src/lib/startup/dllinit.o 77 $(AR) r $@ $(if $(findstring .lib,$@), $.omf/src/lib/startup/dllinit.obj, $.aout/src/lib/startup/dllinit.o) 66 # LIBC .def file (two steps). 67 $(LIBC.DEF): $(LIBC.DEF)-tmp 68 cp $< $@ 69 krx.exe src/lib/dlllegacy.cmd -e "_DLL_InitTerm" $@ src/lib/libc.def 78 70 79 $.aout/libc-tmp.def: $.aout/c.a $.aout/c_app.a 71 $(LIBC.DEF)-tmp: $.omf/c.lib $.omf/c_app.lib 72 echo $^ 80 73 $(call RM,$@) 81 74 @$(call FECHO,$@,LIBRARY libc$(VH)$(VM) INITINSTANCE TERMINSTANCE) … … 84 77 @$(call FECHO,$@,CODE SHARED) 85 78 @$(call FECHO,$@,EXPORTS) 86 @$(call DO.EMXEXP)79 $(call DO.EMXEXP) 87 80 88 $.aout/libc.def: $.aout/libc-tmp.def src/lib/libc.def 89 cp $.aout/libc-tmp.def $@ 90 krx.exe src/lib/dlllegacy.cmd -e "_DLL_InitTerm" $@ src/lib/libc.def 81 # LIBC libraries with dllinit hacked in (temporary only I hope). 82 $(LIBC.IMPLIB): $(LIBC.DEF) $.aout/src/lib/startup/dllinit.o 83 $(IMPLIB) -o $@ $< 84 $(if $(findstring .lib,$@), $(EMXOMF) -o $.omf/src/lib/startup/dllinit.obj $.aout/src/lib/startup/dllinit.o) 85 $(AR) r $@ $(if $(findstring .lib,$@), $.omf/src/lib/startup/dllinit.obj, $.aout/src/lib/startup/dllinit.o) 86 87 88 # Put libc into the big picture. (semihacks) 89 DO.HELP.MODULES += $(call ECHO, libc-dll - The dynamic C library (.dll))$(NL) 90 91 .PHONY: libc-dll 92 all: libc-dll 93 libc-dll: emxbind emxexp app alias libc os2 $(.DIRS) $(LIBC.DLL) $(LIBC.IMPLIB) 94 95 # Installation. 96 INS.FILES += $(INS)lib/$(notdir $(LIBC.DLL)) \ 97 $(INS)lib/$(notdir $(LIBC.DLL:.dll=.dbg)) \ 98 $(addprefix $(INS)lib/,$(notdir $(LIBC.IMPLIB))) 99 100 $(INS)lib/$(notdir $(LIBC.DLL)): $(LIBC.DLL) 101 $(call CP,$<,$@) 102 $(INS)lib/$(notdir $(LIBC.DLL:.dll=.dbg)): $(LIBC.DLL:.dll=.dbg) 103 $(call CP,$<,$@) 104 $(addprefix $(INS)lib/,$(notdir $(LIBC.IMPLIB))): $(LIBC.IMPLIB) 105 $(call CP,$^,$(dir $@)) 106 91 107 92 108 # How libc-std.h can be auto-generated. -
Property cvs2svn:cvs-rev
changed from
Note:
See TracChangeset
for help on using the changeset viewer.