Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • uspace/Makefile.common

    r042fbe0 r78a9e5ef  
    4040#   BINARY         (/) binary output name (like appname)
    4141#   LIBRARY        (/) library output name (like libname)
    42 #
    4342#   EXTRA_OUTPUT       additional output targets
    4443#   EXTRA_CLEAN        additional cleanup targets
    45 #
    46 # Optionally, for a binary:
    47 #   STATIC_NEEDED      set to 'y' for init binaries, will build statically
    48 #                      linked version
    49 #   STATIC_ONLY        set to 'y' if binary cannot be linked dynamically
    50 #                      (e.g. uses thread-local variables)
    51 #
    52 # Optionally, for a libary:
    53 #   SLIBRARY           Name with full version, e.g. libfoo.so.0.0
    54 #   LSONAME            Soname / name with short version, e.g. libfoo.so.0
    5544#
    5645# (x) required variables
     
    8473endif
    8574
    86 ifeq ($(CONFIG_BUILD_SHARED_LIBS), y)
    87         ifneq ($(SLIBRARY),)
    88                 LARCHIVE = $(LIBRARY).la
    89                 LOUTPUT = $(SLIBRARY)
    90                 EXTRA_OUTPUT += $(LOUTPUT).disasm $(LIBRARY).so $(LSONAME)
    91                 EXTRA_CLEAN += $(LOUTPUT).map $(LOUTPUT).ldisasm \
    92                     $(LIBC_PREFIX)/shared/arch/$(UARCH)/_lib.ld \
    93                     $(LIBRARY).so $(LSONAME)
    94         endif
    95 endif
    96 
    9775DEPEND = Makefile.depend
    9876DEPEND_PREV = $(DEPEND).prev
     
    11290LIBNET_PREFIX = $(LIB_PREFIX)/net
    11391
    114 ifeq ($(STATIC_NEEDED),y)
    115         STATIC_BUILD = y
    116 else
    117         ifeq ($(STATIC_ONLY),y)
    118                 STATIC_BUILD = y
    119         else
    120                 ifeq ($(CONFIG_USE_SHARED_LIBS), y)
    121                         STATIC_BUILD = n
    122                 else
    123                         STATIC_BUILD = y
    124                 endif
    125         endif
    126 endif
    127 
    128 ifeq ($(STATIC_BUILD), y)
    12992BASE_LIBS = $(LIBC_PREFIX)/libc.a $(LIBSOFTINT_PREFIX)/libsoftint.a
     93
    13094LINKER_SCRIPT ?= $(LIBC_PREFIX)/arch/$(UARCH)/_link.ld
    131 else
    132 BASE_LIBS = $(LIBC_PREFIX)/libc.so0 $(LIBSOFTINT_PREFIX)/libsofti.so0
    133 LFLAGS = -Bdynamic
    134 LINKER_SCRIPT ?= $(LIBC_PREFIX)/arch/$(UARCH)/_link-dlexe.ld
    135 endif
    13695
    13796ifeq ($(CONFIG_OPTIMIZE_FOR_SIZE),y)
     
    143102.PHONY: all clean
    144103
    145 all: $(VERSION_DEF) $(COMMON_MAKEFILE) $(CONFIG_MAKEFILE) $(CONFIG_HEADER) $(LIBS) $(OUTPUT) $(LOUTPUT) $(EXTRA_OUTPUT)
     104all: $(VERSION_DEF) $(COMMON_MAKEFILE) $(CONFIG_MAKEFILE) $(CONFIG_HEADER) $(LIBS) $(OUTPUT) $(EXTRA_OUTPUT)
    146105        -[ -f $(DEPEND) ] && cp -a $(DEPEND) $(DEPEND_PREV)
    147106
    148107clean:
    149         rm -f $(DEPEND) $(DEPEND_PREV) $(JOB) $(OUTPUT) $(LARCHIVE) $(LOUTPUT) $(EXTRA_OUTPUT) $(EXTRA_CLEAN)
     108        rm -f $(DEPEND) $(DEPEND_PREV) $(JOB) $(OUTPUT) $(EXTRA_OUTPUT) $(EXTRA_CLEAN)
    150109        find . -name '*.o' -follow -exec rm \{\} \;
    151         find . -name '*.lo' -follow -exec rm \{\} \;
    152110
    153111GCC_CFLAGS = -I$(LIBC_PREFIX)/include -O$(OPTIMIZATION) -imacros $(CONFIG_HEADER) \
     
    172130        -pipe -g -arch $(CLANG_ARCH) -D__$(ENDIANESS)__
    173131
    174 LIB_CFLAGS = $(CFLAGS) -fPIC -D__IN_SHARED_LIBC__
    175 LIB_LFLAGS = $(LFLAGS) -shared -soname $(LSONAME) --whole-archive
    176 
    177132ifeq ($(CONFIG_DEBUG),y)
    178133        GCC_CFLAGS += -Werror
     
    180135endif
    181136
    182 ifeq ($(CONFIG_LINE_DEBUG),y)
    183         GCC_CFLAGS += -g
    184         ICC_CFLAGS += -g
    185         SUNCC_CFLAGS += -g
    186         CLANG_CFLAGS += -g
    187 endif
    188 
    189137## Setup platform configuration
    190138#
     
    220168
    221169OBJECTS := $(addsuffix .o,$(basename $(SOURCES)))
    222 LOBJECTS := $(addsuffix .lo,$(basename $(SOURCES)))
    223170
    224171ifneq ($(BINARY),)
     
    231178
    232179$(BINARY): $(LINKER_SCRIPT) $(OBJECTS) $(LIBS) $(BASE_LIBS)
    233         $(LD) -n $(LFLAGS) -T $(LINKER_SCRIPT) -M -Map $(BINARY).map -o $(BINARY) $(OBJECTS) $(LIBS) $(BASE_LIBS)
     180        $(LD) -N $(LFLAGS) -T $(LINKER_SCRIPT) -M -Map $(BINARY).map -o $(BINARY) $(OBJECTS) $(LIBS) $(BASE_LIBS)
    234181ifeq ($(CONFIG_STRIP_BINARIES),y)
    235182        $(STRIP) $(BINARY)
    236183endif
    237 endif
    238 
    239 ifneq ($(SLIBRARY),)
    240 %.disasm: $(LOUTPUT)
    241 ifeq ($(CONFIG_LINE_DEBUG),y)
    242         $(OBJDUMP) -d -S $< > $@
    243 else
    244         $(OBJDUMP) -d $< > $@
    245 endif
    246 
    247 $(LOUTPUT): $(LARCHIVE) $(LIBC_PREFIX)/arch/$(UARCH)/_link-shlib.ld
    248         $(LD) -T $(LIBC_PREFIX)/arch/$(UARCH)/_link-shlib.ld $(LIB_LFLAGS) $(LARCHIVE) -o $@ -Map $(LOUTPUT).map
    249 
    250 $(LIBRARY).so:
    251         ln -s $(SLIBRARY) $@
    252 
    253 $(LSONAME):
    254         ln -s $(SLIBRARY) $@
    255184endif
    256185
     
    258187%.a: $(OBJECTS)
    259188        $(AR) rc $@ $(OBJECTS)
    260 endif
    261 
    262 ifneq ($(SLIBRARY),)
    263 %.la: $(LOBJECTS)
    264         $(AR) rc $@ $(LOBJECTS)
    265189endif
    266190
     
    283207endif
    284208
    285 %.lo: %.S $(DEPEND)
    286         $(CC) $(DEFS) $(LIB_CFLAGS) -D__ASM__ -c $< -o $@
    287 ifeq ($(PRECHECK),y)
    288         $(JOBFILE) $(JOB) $< $@ as asm/preproc $(DEFS) $(CFLAGS) -D__ASM__
    289 endif
    290 
    291 %.lo: %.s $(DEPEND)
    292         $(AS) $(AFLAGS) -o $@ $<
    293 ifeq ($(PRECHECK),y)
    294         $(JOBFILE) $(JOB) $< $@ as asm
    295 endif
    296 
    297 %.lo: %.c $(DEPEND)
    298         $(CC) $(DEFS) $(LIB_CFLAGS) -c $< -o $@
    299 ifeq ($(PRECHECK),y)
    300         $(JOBFILE) $(JOB) $< $@ cc core $(DEFS) $(CFLAGS)
    301 endif
    302 
    303209$(DEPEND): $(PRE_DEPEND)
    304210        makedepend -f - -- $(DEPEND_DEFS) $(CFLAGS) -- $(SOURCES) > $@ 2> /dev/null
    305211        -[ -f $(DEPEND_PREV) ] && diff -q $(DEPEND_PREV) $@ && mv -f $(DEPEND_PREV) $@
    306 
    307 ##
    308 # This explicit dependecy of the output binary on the object files seems to be
    309 # necessary to prevent parallel build failures (GNU make bug #26893 ???).
    310 $(OUTPUT): $(OBJECTS)
    311 
    312 $(LARCHIVE): $(LOBJECTS)
Note: See TracChangeset for help on using the changeset viewer.