Changes in uspace/Makefile.common [79ae36dd:7ab6fc2] in mainline
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/Makefile.common
r79ae36dd r7ab6fc2 40 40 # BINARY (/) binary output name (like appname) 41 41 # LIBRARY (/) library output name (like libname) 42 #43 42 # EXTRA_OUTPUT additional output targets 44 43 # EXTRA_CLEAN additional cleanup targets 45 #46 # Optionally, for a binary:47 # STATIC_NEEDED set to 'y' for init binaries, will build statically48 # linked version49 # STATIC_ONLY set to 'y' if binary cannot be linked dynamically50 # (e.g. uses thread-local variables)51 #52 # Optionally, for a libary:53 # SLIBRARY Name with full version, e.g. libfoo.so.0.054 # LSONAME Soname / name with short version, e.g. libfoo.so.055 44 # 56 45 # (x) required variables … … 84 73 endif 85 74 86 ifeq ($(CONFIG_BUILD_SHARED_LIBS), y)87 ifneq ($(SLIBRARY),)88 LARCHIVE = $(LIBRARY).la89 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 endif95 endif96 97 75 DEPEND = Makefile.depend 98 76 DEPEND_PREV = $(DEPEND).prev … … 104 82 LIBSOFTINT_PREFIX = $(LIB_PREFIX)/softint 105 83 84 LIBCOMPAT_PREFIX = $(LIB_PREFIX)/compat 85 106 86 LIBBLOCK_PREFIX = $(LIB_PREFIX)/block 107 87 LIBFS_PREFIX = $(LIB_PREFIX)/fs 108 88 LIBCLUI_PREFIX = $(LIB_PREFIX)/clui 109 89 110 LIBEXT2_PREFIX = $(LIB_PREFIX)/ext2111 112 LIBUSB_PREFIX = $(LIB_PREFIX)/usb113 LIBUSBHOST_PREFIX = $(LIB_PREFIX)/usbhost114 LIBUSBDEV_PREFIX = $(LIB_PREFIX)/usbdev115 LIBUSBHID_PREFIX = $(LIB_PREFIX)/usbhid116 LIBUSBVIRT_PREFIX = $(LIB_PREFIX)/usbvirt117 118 90 LIBDRV_PREFIX = $(LIB_PREFIX)/drv 119 91 LIBPACKET_PREFIX = $(LIB_PREFIX)/packet 120 92 LIBNET_PREFIX = $(LIB_PREFIX)/net 121 93 122 ifeq ($(STATIC_NEEDED),y)123 STATIC_BUILD = y124 else125 ifeq ($(STATIC_ONLY),y)126 STATIC_BUILD = y127 else128 ifeq ($(CONFIG_USE_SHARED_LIBS), y)129 STATIC_BUILD = n130 else131 STATIC_BUILD = y132 endif133 endif134 endif135 136 # Build static whenever we use libusb because that library uses137 # thread local variables138 ifneq ($(findstring usb, $(LIBS)),)139 STATIC_BUILD = y140 endif141 142 ifeq ($(STATIC_BUILD), y)143 94 BASE_LIBS = $(LIBC_PREFIX)/libc.a $(LIBSOFTINT_PREFIX)/libsoftint.a 95 144 96 LINKER_SCRIPT ?= $(LIBC_PREFIX)/arch/$(UARCH)/_link.ld 145 else146 BASE_LIBS = $(LIBC_PREFIX)/libc.so0 $(LIBSOFTINT_PREFIX)/libsofti.so0147 LFLAGS = -Bdynamic148 LINKER_SCRIPT ?= $(LIBC_PREFIX)/arch/$(UARCH)/_link-dlexe.ld149 endif150 97 151 98 ifeq ($(CONFIG_OPTIMIZE_FOR_SIZE),y) … … 157 104 .PHONY: all clean 158 105 159 all: $(VERSION_DEF) $(COMMON_MAKEFILE) $(CONFIG_MAKEFILE) $(CONFIG_HEADER) $(LIBS) $(OUTPUT) $( LOUTPUT) $(EXTRA_OUTPUT)106 all: $(VERSION_DEF) $(COMMON_MAKEFILE) $(CONFIG_MAKEFILE) $(CONFIG_HEADER) $(LIBS) $(OUTPUT) $(EXTRA_OUTPUT) 160 107 -[ -f $(DEPEND) ] && cp -a $(DEPEND) $(DEPEND_PREV) 161 108 162 109 clean: 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) 164 111 find . -name '*.o' -follow -exec rm \{\} \; 165 find . -name '*.lo' -follow -exec rm \{\} \;166 112 167 113 GCC_CFLAGS = -I$(LIBC_PREFIX)/include -O$(OPTIMIZATION) -imacros $(CONFIG_HEADER) \ … … 169 115 -finput-charset=UTF-8 -ffreestanding -fno-builtin -nostdlib -nostdinc \ 170 116 -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 \ 172 118 -pipe -g -D__$(ENDIANESS)__ 173 119 … … 186 132 -pipe -g -arch $(CLANG_ARCH) -D__$(ENDIANESS)__ 187 133 188 LIB_CFLAGS = $(CFLAGS) -fPIC -D__IN_SHARED_LIBC__189 LIB_LFLAGS = $(LFLAGS) -shared -soname $(LSONAME) --whole-archive190 191 134 ifeq ($(CONFIG_DEBUG),y) 192 135 GCC_CFLAGS += -Werror … … 211 154 JOBFILE = $(LIBC_PREFIX)/../../../tools/jobfile.py 212 155 156 ifeq ($(POSIX_COMPAT),1) 157 CFLAGS = -I$(LIBCOMPAT_PREFIX) 158 LIBS += $(LIBCOMPAT_PREFIX)/libcompat.a 159 endif 160 213 161 ifeq ($(COMPILER),gcc_cross) 214 CFLAGS = $(GCC_CFLAGS) $(EXTRA_CFLAGS)162 CFLAGS += $(GCC_CFLAGS) $(EXTRA_CFLAGS) 215 163 DEPEND_DEFS = $(DEFS) $(CONFIG_DEFS) 216 164 endif 217 165 218 166 ifeq ($(COMPILER),gcc_native) 219 CFLAGS = $(GCC_CFLAGS) $(EXTRA_CFLAGS)167 CFLAGS += $(GCC_CFLAGS) $(EXTRA_CFLAGS) 220 168 DEPEND_DEFS = $(DEFS) $(CONFIG_DEFS) 221 169 endif 222 170 223 171 ifeq ($(COMPILER),icc) 224 CFLAGS = $(ICC_CFLAGS) $(EXTRA_CFLAGS)172 CFLAGS += $(ICC_CFLAGS) $(EXTRA_CFLAGS) 225 173 DEPEND_DEFS = $(DEFS) $(CONFIG_DEFS) 226 174 endif 227 175 228 176 ifeq ($(COMPILER),clang) 229 CFLAGS = $(CLANG_CFLAGS) $(EXTRA_CFLAGS)177 CFLAGS += $(CLANG_CFLAGS) $(EXTRA_CFLAGS) 230 178 DEPEND_DEFS = $(DEFS) $(CONFIG_DEFS) 231 179 endif … … 234 182 235 183 OBJECTS := $(addsuffix .o,$(basename $(SOURCES))) 236 LOBJECTS := $(addsuffix .lo,$(basename $(SOURCES)))237 184 238 185 ifneq ($(BINARY),) … … 245 192 246 193 $(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) 248 195 ifeq ($(CONFIG_STRIP_BINARIES),y) 249 196 $(STRIP) $(BINARY) 250 197 endif 251 endif252 253 ifneq ($(SLIBRARY),)254 %.disasm: $(LOUTPUT)255 ifeq ($(CONFIG_LINE_DEBUG),y)256 $(OBJDUMP) -d -S $< > $@257 else258 $(OBJDUMP) -d $< > $@259 endif260 261 $(LOUTPUT): $(LARCHIVE) $(LIBC_PREFIX)/arch/$(UARCH)/_link-shlib.ld262 $(LD) -T $(LIBC_PREFIX)/arch/$(UARCH)/_link-shlib.ld $(LIB_LFLAGS) $(LARCHIVE) -o $@ -Map $(LOUTPUT).map263 264 $(LIBRARY).so:265 ln -s $(SLIBRARY) $@266 267 $(LSONAME):268 ln -s $(SLIBRARY) $@269 198 endif 270 199 … … 272 201 %.a: $(OBJECTS) 273 202 $(AR) rc $@ $(OBJECTS) 274 endif275 276 ifneq ($(SLIBRARY),)277 %.la: $(LOBJECTS)278 $(AR) rc $@ $(LOBJECTS)279 203 endif 280 204 … … 297 221 endif 298 222 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 endif304 305 %.lo: %.s $(DEPEND)306 $(AS) $(AFLAGS) -o $@ $<307 ifeq ($(PRECHECK),y)308 $(JOBFILE) $(JOB) $< $@ as asm309 endif310 311 %.lo: %.c $(DEPEND)312 $(CC) $(DEFS) $(LIB_CFLAGS) -c $< -o $@313 ifeq ($(PRECHECK),y)314 $(JOBFILE) $(JOB) $< $@ cc core $(DEFS) $(CFLAGS)315 endif316 317 223 $(DEPEND): $(PRE_DEPEND) 318 224 makedepend -f - -- $(DEPEND_DEFS) $(CFLAGS) -- $(SOURCES) > $@ 2> /dev/null … … 324 230 $(OUTPUT): $(OBJECTS) 325 231 326 $(LARCHIVE): $(LOBJECTS)
Note:
See TracChangeset
for help on using the changeset viewer.