Changeset 21394 for trunk/include


Ignore:
Timestamp:
Jul 27, 2010, 9:55:40 PM (15 years ago)
Author:
dmik
Message:

Use the .lrf file when generating .exe and .dll using EMX to overcome the command line length limitation.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/include/odin32.post.emx.mk

    r21307 r21394  
    133133$(OBJDIR)\$(TARGET).$(TARGET_EXTENSION): $(LIBS) $(OBJS) $(OS2RES) $(DEFFILE) $(OBJDIR)\bldlevel.$(ORGDEFFILE) $(OBJDIR)\$(TARGET).lrf
    134134    $(CMDQD_WAIT)
     135!ifndef NO_LNKFILE_RULE
     136    $(LD2) $(LD2FLAGS) $(OBJ_PROFILE) @$(OBJDIR)\$(TARGET).lrf
     137!else   
    135138    $(LD2) $(LD2FLAGS) $(OBJ_PROFILE) -o $(OBJDIR)\$(TARGET).$(TARGET_EXTENSION) $(OBJS) $(LIB_PROFILE) $(LIBS) $(OBJDIR)\bldlevel.$(ORGDEFFILE)
    136 
     139!endif
    137140!ifdef OS2RES
    138141    $(OS2RC) $(OS2RCLFLAGS) $(OS2RES) $@
     
    149152#
    150153# Dll: Linker file - creates the parameter file passed on to the linker.
    151 #
    152 !ifndef NO_LNKFILE_RULE
    153 $(OBJDIR)\$(TARGET).lrf: $(MAKEFILE) $(ODIN32_INCLUDE)\odin32.post.emx.mk
    154     @echo emx
    155     @echo Creating file <<$@
    156 $(OBJ_PROFILE)
    157 $(OBJS)
    158 -o $(OBJDIR)\$(TARGET).$(TARGET_EXTENSION)
    159 $(LIB_PROFILE)
    160 $(LIBS)
    161 $(OBJDIR)\bldlevel.$(ORGDEFFILE)
    162 <<keep
    163 !endif
    164 
    165 
    166 !else # !ifndef EXETARGET
    167 ###############################################################################
    168 # EXE Target
    169 ###############################################################################
    170 
    171 #
    172 # Exe: All rule - build objs, target exe, copies target to bin.
    173 #
    174 !ifndef NO_ALL_RULE
    175 all:    $(OBJDIR) \
    176         $(INTLIBS) \
    177         $(OBJDIR)\$(TARGET).$(TARGET_EXTENSION) \
    178         $(OBJDIR)\$(TARGET).sym \
    179         $(ODIN32_BIN)\$(TARGET).$(TARGET_EXTENSION) \
    180         $(ODIN32_BIN)\$(TARGET).sym \
    181         $(ADDITIONAL_ALL)
    182 !endif
    183 
    184 
    185 #
    186 # Exe: Lib rule - dummy rule
    187 #
    188 !ifndef NO_LIB_RULE
    189 lib:
    190 !endif
    191 
    192 
    193 #
    194 # Exe: Main target rule - builds the target exe.
    195 #
    196 !ifndef NO_MAIN_RULE
    197 $(OBJDIR)\$(TARGET).$(TARGET_EXTENSION): $(LIBS) $(OBJS) $(OS2RES) $(DEFFILE) $(OBJDIR)\bldlevel.$(ORGDEFFILE) $(OBJDIR)\$(TARGET).lrf
    198     $(CMDQD_WAIT)
    199     -4 $(LD2) $(LD2FLAGS) @$(OBJDIR)\$(TARGET).lrf
    200 !ifdef OS2RES
    201     $(OS2RC) $(OS2RCLFLAGS) $(OS2RES) $@
    202 !endif
    203 !if !defined(DEBUG) && !defined(NO_LXLITE)
    204 # remove all EAs from the file to prevent errors running LXLITE on
    205 # a LAN server mounted JFS volume
    206     eautil $@ nul /s
    207     $(LXLITE) $@
    208 !endif
    209 !endif
    210 
    211 
    212 #
    213 # Exe: Linker file - creates the parameter file passed on to the linker.
    214154#
    215155!ifndef NO_LNKFILE_RULE
     
    228168!else
    229169    @echo Creating file <<$@
    230 $(EMX)\lib\crt0.obj+$(OBJ_PROFILE)$(OBJS: =+^
    231 ),
    232 $(OBJDIR)\$(TARGET).$(TARGET_EXTENSION),
    233 $(OBJDIR)\$(TARGET).map,
    234 $(LIB_PROFILE)+$(LIBS: =+^
    235 )+$(EMX)\lib\end.lib,
    236 $(OBJDIR)\bldlevel.$(ORGDEFFILE);
     170-o
     171$(OBJDIR)\$(TARGET).$(TARGET_EXTENSION)
     172-Zmap
     173$(OBJDIR)\bldlevel.$(ORGDEFFILE)
    237174<<keep
     175!endif
     176!ifdef OBJ_PROFILE
     177    @echo $(OBJ_PROFILE)>> $@
     178!endif
     179!ifdef OBJS
     180    @for %%i in ($(OBJS)) do @echo %%i>> $@
     181!endif
     182!ifdef LIB_PROFILE
     183    @echo $(LIB_PROFILE)>> $@
     184!endif
     185!ifdef LIBS
     186    @for %%i in ($(LIBS)) do @echo %%i>> $@
     187!endif
     188!endif
     189
     190
     191!else # !ifndef EXETARGET
     192###############################################################################
     193# EXE Target
     194###############################################################################
     195
     196#
     197# Exe: All rule - build objs, target exe, copies target to bin.
     198#
     199!ifndef NO_ALL_RULE
     200all:    $(OBJDIR) \
     201        $(INTLIBS) \
     202        $(OBJDIR)\$(TARGET).$(TARGET_EXTENSION) \
     203        $(OBJDIR)\$(TARGET).sym \
     204        $(ODIN32_BIN)\$(TARGET).$(TARGET_EXTENSION) \
     205        $(ODIN32_BIN)\$(TARGET).sym \
     206        $(ADDITIONAL_ALL)
     207!endif
     208
     209
     210#
     211# Exe: Lib rule - dummy rule
     212#
     213!ifndef NO_LIB_RULE
     214lib:
     215!endif
     216
     217
     218#
     219# Exe: Main target rule - builds the target exe.
     220#
     221!ifndef NO_MAIN_RULE
     222$(OBJDIR)\$(TARGET).$(TARGET_EXTENSION): $(LIBS) $(OBJS) $(OS2RES) $(DEFFILE) $(OBJDIR)\bldlevel.$(ORGDEFFILE) $(OBJDIR)\$(TARGET).lrf
     223    $(CMDQD_WAIT)
     224    -4 $(LD2) $(LD2FLAGS) @$(OBJDIR)\$(TARGET).lrf
     225!ifdef OS2RES
     226    $(OS2RC) $(OS2RCLFLAGS) $(OS2RES) $@
     227!endif
     228!if !defined(DEBUG) && !defined(NO_LXLITE)
     229# remove all EAs from the file to prevent errors running LXLITE on
     230# a LAN server mounted JFS volume
     231    eautil $@ nul /s
     232    $(LXLITE) $@
     233!endif
     234!endif
     235
     236
     237#
     238# Exe: Linker file - creates the parameter file passed on to the linker.
     239#
     240!ifndef NO_LNKFILE_RULE
     241$(OBJDIR)\$(TARGET).lrf: $(MAKEFILE) $(ODIN32_INCLUDE)\odin32.post.emx.mk
     242!if "$(CCENV)" != "EMX"
     243    @echo Creating file <<$@
     244/OUT:$(OBJDIR)\$(TARGET).$(TARGET_EXTENSION)
     245/MAP:$(OBJDIR)\$(TARGET).map
     246$(OBJS:  =^
     247)
     248$(OBJ_PROFILE) $(LIB_PROFILE)
     249$(LIBS:  =^
     250)
     251$(OBJDIR)\bldlevel.$(ORGDEFFILE)
     252<<keep
     253!else
     254    @echo Creating file <<$@
     255-o
     256$(OBJDIR)\$(TARGET).$(TARGET_EXTENSION)
     257-Zmap
     258$(OBJDIR)\bldlevel.$(ORGDEFFILE)
     259<<keep
     260!ifdef OBJ_PROFILE
     261    @echo $(OBJ_PROFILE)>> $@
     262!endif
     263!ifdef OBJS
     264    @for %%i in ($(OBJS)) do @echo %%i>> $@
     265!endif
     266!ifdef LIB_PROFILE
     267    @echo $(LIB_PROFILE)>> $@
     268!endif
     269!ifdef LIBS
     270    @for %%i in ($(LIBS)) do @echo %%i>> $@
    238271!endif
    239272!endif
Note: See TracChangeset for help on using the changeset viewer.