Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • uspace/Makefile.common

    r79ae36dd r7ab6fc2  
    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
     
    10482LIBSOFTINT_PREFIX = $(LIB_PREFIX)/softint
    10583
     84LIBCOMPAT_PREFIX = $(LIB_PREFIX)/compat
     85
    10686LIBBLOCK_PREFIX = $(LIB_PREFIX)/block
    10787LIBFS_PREFIX = $(LIB_PREFIX)/fs
    10888LIBCLUI_PREFIX = $(LIB_PREFIX)/clui
    10989
    110 LIBEXT2_PREFIX = $(LIB_PREFIX)/ext2
    111 
    112 LIBUSB_PREFIX = $(LIB_PREFIX)/usb
    113 LIBUSBHOST_PREFIX = $(LIB_PREFIX)/usbhost
    114 LIBUSBDEV_PREFIX = $(LIB_PREFIX)/usbdev
    115 LIBUSBHID_PREFIX = $(LIB_PREFIX)/usbhid
    116 LIBUSBVIRT_PREFIX = $(LIB_PREFIX)/usbvirt
    117 
    11890LIBDRV_PREFIX = $(LIB_PREFIX)/drv
    11991LIBPACKET_PREFIX = $(LIB_PREFIX)/packet
    12092LIBNET_PREFIX = $(LIB_PREFIX)/net
    12193
    122 ifeq ($(STATIC_NEEDED),y)
    123         STATIC_BUILD = y
    124 else
    125         ifeq ($(STATIC_ONLY),y)
    126                 STATIC_BUILD = y
    127         else
    128                 ifeq ($(CONFIG_USE_SHARED_LIBS), y)
    129                         STATIC_BUILD = n
    130                 else
    131                         STATIC_BUILD = y
    132                 endif
    133         endif
    134 endif
    135 
    136 # Build static whenever we use libusb because that library uses
    137 # thread local variables
    138 ifneq ($(findstring usb, $(LIBS)),)
    139         STATIC_BUILD = y
    140 endif
    141 
    142 ifeq ($(STATIC_BUILD), y)
    14394BASE_LIBS = $(LIBC_PREFIX)/libc.a $(LIBSOFTINT_PREFIX)/libsoftint.a
     95
    14496LINKER_SCRIPT ?= $(LIBC_PREFIX)/arch/$(UARCH)/_link.ld
    145 else
    146 BASE_LIBS = $(LIBC_PREFIX)/libc.so0 $(LIBSOFTINT_PREFIX)/libsofti.so0
    147 LFLAGS = -Bdynamic
    148 LINKER_SCRIPT ?= $(LIBC_PREFIX)/arch/$(UARCH)/_link-dlexe.ld
    149 endif
    15097
    15198ifeq ($(CONFIG_OPTIMIZE_FOR_SIZE),y)
     
    157104.PHONY: all clean
    158105
    159 all: $(VERSION_DEF) $(COMMON_MAKEFILE) $(CONFIG_MAKEFILE) $(CONFIG_HEADER) $(LIBS) $(OUTPUT) $(LOUTPUT) $(EXTRA_OUTPUT)
     106all: $(VERSION_DEF) $(COMMON_MAKEFILE) $(CONFIG_MAKEFILE) $(CONFIG_HEADER) $(LIBS) $(OUTPUT) $(EXTRA_OUTPUT)
    160107        -[ -f $(DEPEND) ] && cp -a $(DEPEND) $(DEPEND_PREV)
    161108
    162109clean:
    163         rm -f $(DEPEND) $(DEPEND_PREV) $(JOB) $(OUTPUT) $(LARCHIVE) $(LOUTPUT) $(EXTRA_OUTPUT) $(EXTRA_CLEAN)
     110        rm -f $(DEPEND) $(DEPEND_PREV) $(JOB) $(OUTPUT) $(EXTRA_OUTPUT) $(EXTRA_CLEAN)
    164111        find . -name '*.o' -follow -exec rm \{\} \;
    165         find . -name '*.lo' -follow -exec rm \{\} \;
    166112
    167113GCC_CFLAGS = -I$(LIBC_PREFIX)/include -O$(OPTIMIZATION) -imacros $(CONFIG_HEADER) \
     
    169115        -finput-charset=UTF-8 -ffreestanding -fno-builtin -nostdlib -nostdinc \
    170116        -Wall -Wextra -Wno-clobbered -Wno-unused-parameter -Wmissing-prototypes \
    171         -std=gnu99 -Werror-implicit-function-declaration -Wwrite-strings \
     117        -Werror-implicit-function-declaration -Wwrite-strings \
    172118        -pipe -g -D__$(ENDIANESS)__
    173119
     
    186132        -pipe -g -arch $(CLANG_ARCH) -D__$(ENDIANESS)__
    187133
    188 LIB_CFLAGS = $(CFLAGS) -fPIC -D__IN_SHARED_LIBC__
    189 LIB_LFLAGS = $(LFLAGS) -shared -soname $(LSONAME) --whole-archive
    190 
    191134ifeq ($(CONFIG_DEBUG),y)
    192135        GCC_CFLAGS += -Werror
     
    211154JOBFILE = $(LIBC_PREFIX)/../../../tools/jobfile.py
    212155
     156ifeq ($(POSIX_COMPAT),1)
     157        CFLAGS = -I$(LIBCOMPAT_PREFIX)
     158        LIBS += $(LIBCOMPAT_PREFIX)/libcompat.a
     159endif
     160
    213161ifeq ($(COMPILER),gcc_cross)
    214         CFLAGS = $(GCC_CFLAGS) $(EXTRA_CFLAGS)
     162        CFLAGS += $(GCC_CFLAGS) $(EXTRA_CFLAGS)
    215163        DEPEND_DEFS = $(DEFS) $(CONFIG_DEFS)
    216164endif
    217165
    218166ifeq ($(COMPILER),gcc_native)
    219         CFLAGS = $(GCC_CFLAGS) $(EXTRA_CFLAGS)
     167        CFLAGS += $(GCC_CFLAGS) $(EXTRA_CFLAGS)
    220168        DEPEND_DEFS = $(DEFS) $(CONFIG_DEFS)
    221169endif
    222170
    223171ifeq ($(COMPILER),icc)
    224         CFLAGS = $(ICC_CFLAGS) $(EXTRA_CFLAGS)
     172        CFLAGS += $(ICC_CFLAGS) $(EXTRA_CFLAGS)
    225173        DEPEND_DEFS = $(DEFS) $(CONFIG_DEFS)
    226174endif
    227175
    228176ifeq ($(COMPILER),clang)
    229         CFLAGS = $(CLANG_CFLAGS) $(EXTRA_CFLAGS)
     177        CFLAGS += $(CLANG_CFLAGS) $(EXTRA_CFLAGS)
    230178        DEPEND_DEFS = $(DEFS) $(CONFIG_DEFS)
    231179endif
     
    234182
    235183OBJECTS := $(addsuffix .o,$(basename $(SOURCES)))
    236 LOBJECTS := $(addsuffix .lo,$(basename $(SOURCES)))
    237184
    238185ifneq ($(BINARY),)
     
    245192
    246193$(BINARY): $(LINKER_SCRIPT) $(OBJECTS) $(LIBS) $(BASE_LIBS)
    247         $(LD) -n $(LFLAGS) -T $(LINKER_SCRIPT) -M -Map $(BINARY).map -o $(BINARY) $(OBJECTS) $(LIBS) $(BASE_LIBS)
     194        $(LD) -N $(LFLAGS) -T $(LINKER_SCRIPT) -M -Map $(BINARY).map -o $(BINARY) $(OBJECTS) $(LIBS) $(BASE_LIBS)
    248195ifeq ($(CONFIG_STRIP_BINARIES),y)
    249196        $(STRIP) $(BINARY)
    250197endif
    251 endif
    252 
    253 ifneq ($(SLIBRARY),)
    254 %.disasm: $(LOUTPUT)
    255 ifeq ($(CONFIG_LINE_DEBUG),y)
    256         $(OBJDUMP) -d -S $< > $@
    257 else
    258         $(OBJDUMP) -d $< > $@
    259 endif
    260 
    261 $(LOUTPUT): $(LARCHIVE) $(LIBC_PREFIX)/arch/$(UARCH)/_link-shlib.ld
    262         $(LD) -T $(LIBC_PREFIX)/arch/$(UARCH)/_link-shlib.ld $(LIB_LFLAGS) $(LARCHIVE) -o $@ -Map $(LOUTPUT).map
    263 
    264 $(LIBRARY).so:
    265         ln -s $(SLIBRARY) $@
    266 
    267 $(LSONAME):
    268         ln -s $(SLIBRARY) $@
    269198endif
    270199
     
    272201%.a: $(OBJECTS)
    273202        $(AR) rc $@ $(OBJECTS)
    274 endif
    275 
    276 ifneq ($(SLIBRARY),)
    277 %.la: $(LOBJECTS)
    278         $(AR) rc $@ $(LOBJECTS)
    279203endif
    280204
     
    297221endif
    298222
    299 %.lo: %.S $(DEPEND)
    300         $(CC) $(DEFS) $(LIB_CFLAGS) -D__ASM__ -c $< -o $@
    301 ifeq ($(PRECHECK),y)
    302         $(JOBFILE) $(JOB) $< $@ as asm/preproc $(DEFS) $(CFLAGS) -D__ASM__
    303 endif
    304 
    305 %.lo: %.s $(DEPEND)
    306         $(AS) $(AFLAGS) -o $@ $<
    307 ifeq ($(PRECHECK),y)
    308         $(JOBFILE) $(JOB) $< $@ as asm
    309 endif
    310 
    311 %.lo: %.c $(DEPEND)
    312         $(CC) $(DEFS) $(LIB_CFLAGS) -c $< -o $@
    313 ifeq ($(PRECHECK),y)
    314         $(JOBFILE) $(JOB) $< $@ cc core $(DEFS) $(CFLAGS)
    315 endif
    316 
    317223$(DEPEND): $(PRE_DEPEND)
    318224        makedepend -f - -- $(DEPEND_DEFS) $(CFLAGS) -- $(SOURCES) > $@ 2> /dev/null
     
    324230$(OUTPUT): $(OBJECTS)
    325231
    326 $(LARCHIVE): $(LOBJECTS)
Note: See TracChangeset for help on using the changeset viewer.