Changeset 430


Ignore:
Timestamp:
Jul 23, 2003, 3:21:41 AM (22 years ago)
Author:
bird
Message:

#564: libcXY.dll is now built as OMF. (feel free to clenaup all the hacks)

File:
1 edited

Legend:

Unmodified
Added
Removed
  • TabularUnified trunk/src/emx/src/lib/libc.smak

    • Property cvs2svn:cvs-rev changed from 1.11 to 1.12
    r429 r430  
    4040include mklib.smak
    4141
     42                                       
    4243#------------------------------------------------------
    4344# Now define the rules for building libc$(VERSION).dll
     45# bird: Build as OMF (#564).
    4446#------------------------------------------------------
    45 LIBC.DLL = $.aout/libc$(VH)$(VM).dll
    46 LIBC.IMPLIB = $.aout/c_dll.a $.omf/c_dll.lib
     47.TKIND          := omf
     48LIBC.DLL         = $.omf/libc$(VH)$(VM).dll
     49LIBC.DEF         = $.omf/libc.def
     50LIBC.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)))
     53LIBC.DLL.OBJS   := $(patsubst %.o,%.obj,$(subst /aout/,/omf/,$(LIBC.DLL.OBJS)))
     54.DIRS           := $(sort $(dir $(.OBJS) $(.DEPS) $(LIBC.DLL.OBJS)))
     55TARGDIRS        += $(.DIRS)
    4756
    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) $@
    6962ifeq ($(MODE),opt)
    7063        lxlite /X /AS $@
    7164endif
    7265
    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
    7870
    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 $^
    8073        $(call RM,$@)
    8174        @$(call FECHO,$@,LIBRARY libc$(VH)$(VM) INITINSTANCE TERMINSTANCE)
     
    8477        @$(call FECHO,$@,CODE SHARED)
    8578        @$(call FECHO,$@,EXPORTS)
    86         @$(call DO.EMXEXP)
     79        $(call DO.EMXEXP)
    8780
    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)
     89DO.HELP.MODULES += $(call ECHO,    libc-dll - The dynamic C library (.dll))$(NL)
     90
     91.PHONY: libc-dll
     92all: libc-dll
     93libc-dll: emxbind emxexp app alias libc os2 $(.DIRS) $(LIBC.DLL) $(LIBC.IMPLIB)
     94
     95# Installation.
     96INS.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
    91107
    92108# How libc-std.h can be auto-generated.
Note: See TracChangeset for help on using the changeset viewer.