Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • uspace/Makefile.common

    r83b64a59 r6480827  
    4646#   STATIC_NEEDED      set to 'y' for init binaries, will build statically
    4747#                      linked version
     48#   STATIC_ONLY        set to 'y' if binary cannot be linked dynamically
     49#                      (e.g. uses thread-local variables)
    4850#
    4951# Optionally, for a library:
     
    112114LDFLAGS = -Wl,--fatal-warnings,--warn-common
    113115
    114 STATIC_BUILD = n
    115 
    116116ifeq ($(STATIC_NEEDED),y)
    117117        STATIC_BUILD = y
    118 endif
    119 
    120 ifneq ($(CONFIG_BUILD_SHARED_LIBS),y)
    121         STATIC_BUILD = y
    122 endif
    123 
    124 ifneq ($(CONFIG_USE_SHARED_LIBS),y)
    125         ifeq ($(LIBRARY),)
     118else
     119        ifeq ($(STATIC_ONLY),y)
    126120                STATIC_BUILD = y
     121        else
     122                ifeq ($(CONFIG_BUILD_SHARED_LIBS),y)
     123                        ifeq ($(CONFIG_USE_SHARED_LIBS),y)
     124                                STATIC_BUILD = n
     125                        else
     126                                ifeq ($(LIBRARY),)
     127                                        STATIC_BUILD = y
     128                                else
     129                                        STATIC_BUILD = n
     130                                endif
     131                        endif
     132                else
     133                        STATIC_BUILD = y
     134                endif
    127135        endif
    128136endif
    129137
    130 ifeq ($(STATIC_BUILD),y)
    131         LDFLAGS += -static
     138ifneq ($(STATIC_BUILD),y)
     139        LINK_DYNAMIC = y
    132140endif
    133141
     
    144152BASE_LIBS += -lgcc
    145153
     154ifneq ($(LINK_DYNAMIC),y)
     155        LDFLAGS += -static
     156endif
     157
    146158INCLUDES_FLAGS = $(LIBC_INCLUDES_FLAGS)
    147159
     
    152164INCLUDES_FLAGS += $(foreach lib,$(LIBS), -I$(LIB_PREFIX)/$(lib) -I$(LIB_PREFIX)/$(lib)/include)
    153165
    154 DEPLIBS := $(LIBS)
    155 
    156 ifneq ($(filter %.cpp %.cc %.cxx, $(SOURCES)),)
    157         ifneq ($(LIBRARY),libcpp)
    158                 DEPLIBS += cpp
    159         endif
    160 endif
    161 
    162 ifneq ($(LIBRARY),libc)
    163         DEPLIBS += c
     166# TODO: get rid of this special case
     167ifneq ($(filter math, $(LIBS)),)
     168        INCLUDES_FLAGS += $(LIBMATH_INCLUDES_FLAGS)
    164169endif
    165170
     
    300305DEPENDS := $(addsuffix .d,$(basename $(SOURCES))) $(addsuffix .test.d,$(basename $(TEST_SOURCES)))
    301306
    302 LIBTAGS := $(foreach lib,$(DEPLIBS), $(USPACE_PREFIX)/lib/$(lib)/tag)
     307LIBTAGS := $(foreach lib,$(LIBS), $(USPACE_PREFIX)/lib/$(lib)/tag)
    303308LIBARGS := $(addprefix -L$(USPACE_PREFIX)/lib/, $(LIBS)) $(addprefix -l, $(LIBS))
     309
     310ifneq ($(LIBRARY),libc)
     311        LIBTAGS := $(LIBC_PREFIX)/tag $(LIBTAGS)
     312endif
    304313
    305314.PHONY: all all-test clean fasterclean depend
     
    330339deps.mk: Makefile
    331340        echo > $@.new
    332         for lib in $(DEPLIBS); do \
     341        for lib in $(LIBS); do \
    333342                echo "$(SELF_TARGET): lib/$$lib.build" >> $@.new; \
    334343        done
Note: See TracChangeset for help on using the changeset viewer.