Changeset c631734 in mainline for uspace/Makefile.common
- Timestamp:
- 2017-11-07T23:14:00Z (6 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- cecba66e
- Parents:
- b8d4af4b
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/Makefile.common
rb8d4af4b rc631734 53 53 # (e.g. uses thread-local variables) 54 54 # 55 # Optionally, for a lib ary:56 # S LIBRARY Name with full version, e.g. libfoo.so.0.057 # LSONAME Soname / name with short version, e.g. libfoo.so.055 # Optionally, for a library: 56 # SOVERSION shared library version (major.minor), 57 # if missing, no shared library is built 58 58 # 59 59 # (x) required variables … … 63 63 ROOT_PATH = $(USPACE_PREFIX)/.. 64 64 65 VERSION_DEF = $(ROOT_PATH)/version66 67 65 COMMON_MAKEFILE = $(ROOT_PATH)/Makefile.common 68 66 COMMON_HEADER = $(ROOT_PATH)/common.h … … 71 69 CONFIG_HEADER = $(ROOT_PATH)/config.h 72 70 73 -include $(VERSION_DEF)74 71 -include $(COMMON_MAKEFILE) 75 72 -include $(CONFIG_MAKEFILE) 76 73 74 OUTPUTS = $(EXTRA_OUTPUT) 75 77 76 ifneq ($(BINARY),) 78 77 JOB = $(BINARY).job 79 OUTPUT = $(BINARY)80 78 TEST_BINARY = test-$(BINARY) 81 EXTRA_OUTPUT +=$(BINARY).disasm79 OUTPUTS += $(BINARY) $(BINARY).disasm 82 80 EXTRA_CLEAN += $(BINARY).map 83 81 endif … … 85 83 ifneq ($(LIBRARY),) 86 84 JOB = $(LIBRARY).job 87 OUTPUT = $(LIBRARY).a88 85 TEST_BINARY = test-$(LIBRARY) 86 OUTPUTS += $(LIBRARY).a 89 87 endif 90 88 91 89 ifeq ($(CONFIG_BUILD_SHARED_LIBS),y) 92 ifneq ($(SLIBRARY),) 93 LARCHIVE = $(LIBRARY).la 94 LOUTPUT = $(SLIBRARY) 95 EXTRA_OUTPUT += $(LOUTPUT).disasm $(LIBRARY).so $(LSONAME) 96 EXTRA_CLEAN += $(LOUTPUT).map $(LOUTPUT).disasm \ 97 $(LIBC_PREFIX)/shared/arch/$(UARCH)/_lib.ld \ 98 $(LIBRARY).so $(LSONAME) 90 ifneq ($(SOVERSION),) 91 SLIBRARY = $(LIBRARY).so.$(SOVERSION) 92 LSONAME = $(LIBRARY).so.$(basename $(SOVERSION)) 93 OUTPUTS += $(SLIBRARY) $(SLIBRARY).disasm $(LSONAME) 94 EXTRA_CLEAN += $(LIBRARY).la $(SLIBRARY).map 99 95 endif 100 96 endif … … 201 197 endif 202 198 199 LIB_LINKER_SCRIPT = $(LIBC_PREFIX)/arch/$(UARCH)/_link-shlib.ld 200 203 201 ifeq ($(MATH),y) 204 202 INCLUDES_FLAGS = $(LIBC_INCLUDES_FLAGS) $(LIBMATH_INCLUDES_FLAGS) … … 209 207 # PCUT-based unit tests 210 208 ifneq ($(TEST_SOURCES),) 211 TEST_OUTPUT = $(TEST_BINARY) 212 TEST_DISASM = $(TEST_BINARY).disasm 209 TEST_OUTPUTS = $(TEST_BINARY) $(TEST_BINARY).disasm 213 210 TEST_CFLAGS = -I$(LIB_PREFIX)/pcut/include -D__helenos__ 214 TEST_ OUTPUT_LIBS = $(LIB_PREFIX)/pcut/libpcut.a215 EXTRA_CLEAN += $(TEST_OUTPUT ) $(TEST_OUTPUT).map $(TEST_DISASM)211 TEST_BINARY_LIBS = $(LIB_PREFIX)/pcut/libpcut.a 212 EXTRA_CLEAN += $(TEST_OUTPUTS) $(TEST_BINARY).map 216 213 ifneq ($(LIBRARY),) 217 TEST_OUTPUT_LIBS += $(OUTPUT) 218 endif 219 TEST_OUTPUT_LIBS += $(TEST_LIBS) 220 endif 221 222 .PHONY: all all-test clean depend 223 224 all: $(VERSION_DEF) $(COMMON_MAKEFILE) $(CONFIG_MAKEFILE) $(CONFIG_HEADER) $(LIBS) $(OUTPUT) $(LOUTPUT) $(EXTRA_OUTPUT) 225 226 all-test: $(TEST_OUTPUT) $(TEST_DISASM) 227 228 clean: 229 rm -f $(JOB) $(OUTPUT) $(LARCHIVE) $(LOUTPUT) $(EXTRA_OUTPUT) $(EXTRA_CLEAN) 214 TEST_BINARY_LIBS += $(LIBRARY).a 215 endif 216 TEST_BINARY_LIBS += $(TEST_LIBS) 217 endif 230 218 231 219 COMMON_CFLAGS = $(INCLUDES_FLAGS) -O$(OPTIMIZATION) -imacros $(CONFIG_HEADER) \ … … 288 276 289 277 LIB_CFLAGS = $(CFLAGS) -fPIC 290 LIB_LFLAGS = $(LFLAGS) -shared -soname $(LSONAME) --whole-archive278 LIB_LFLAGS = $(LFLAGS) -shared -soname $(LSONAME) 291 279 292 280 AS_CFLAGS := $(addprefix -Xassembler ,$(AFLAGS)) … … 300 288 -include $(DEPENDS) 301 289 290 .PHONY: all all-test clean depend 291 292 all: $(OUTPUTS) 293 294 all-test: $(TEST_OUTPUTS) 295 296 clean: 297 rm -f $(JOB) $(OUTPUTS) $(EXTRA_CLEAN) 298 299 depend: $(PRE_DEPEND) 300 302 301 %.disasm: % 303 302 ifeq ($(CONFIG_LINE_DEBUG),y) … … 309 308 ifneq ($(BINARY),) 310 309 $(BINARY): $(LINKER_SCRIPT) $(OBJECTS) $(LIBS) $(BASE_LIBS) 311 $(LD) -n $(LFLAGS) -T $(LINKER_SCRIPT) -M -Map $(BINARY).map -o $(BINARY) $(OBJECTS) $(LIBS) $(BASE_LIBS) 312 endif 313 314 ifneq ($(SLIBRARY),) 315 $(LOUTPUT): $(LARCHIVE) $(LIBC_PREFIX)/arch/$(UARCH)/_link-shlib.ld 316 $(LD) -T $(LIBC_PREFIX)/arch/$(UARCH)/_link-shlib.ld $(LIB_LFLAGS) $(LARCHIVE) -o $@ -Map $(LOUTPUT).map 317 318 $(LIBRARY).so: 319 ln -s $(SLIBRARY) $@ 320 321 $(LSONAME): 322 ln -s $(SLIBRARY) $@ 310 $(LD) $(LFLAGS) -T $(LINKER_SCRIPT) -Map $@.map -o $@ $(OBJECTS) $(LIBS) $(BASE_LIBS) 311 endif 312 313 ifneq ($(TEST_BINARY),) 314 $(TEST_BINARY): $(LINKER_SCRIPT) $(TEST_OBJECTS) $(TEST_BINARY_LIBS) 315 $(LD) $(LFLAGS) -T $(LINKER_SCRIPT) -Map $@.map -o $@ $(TEST_OBJECTS) $(TEST_BINARY_LIBS) $(LIBS) $(BASE_LIBS) 323 316 endif 324 317 … … 328 321 endif 329 322 330 ifneq ($( LARCHIVE),)331 $(L ARCHIVE): $(LOBJECTS)323 ifneq ($(SLIBRARY),) 324 $(LIBRARY).la: $(LOBJECTS) 332 325 $(AR) rc $@ $(LOBJECTS) 333 endif 334 335 ifneq ($(TEST_OUTPUT),) 336 $(TEST_OUTPUT): $(LINKER_SCRIPT) $(TEST_OBJECTS) $(TEST_OUTPUT_LIBS) 337 $(LD) -n $(LFLAGS) -T $(LINKER_SCRIPT) -M -Map $(TEST_OUTPUT).map -o $@ $(TEST_OBJECTS) $(TEST_OUTPUT_LIBS) $(LIBS) $(BASE_LIBS) 326 327 $(SLIBRARY): $(LIB_LINKER_SCRIPT) $(LIBRARY).la 328 $(LD) $(LIB_LFLAGS) -T $(LIB_LINKER_SCRIPT) -Map $@.map -o $@ --whole-archive $(LIBRARY).la --no-whole-archive 329 330 $(LSONAME): 331 ln -s $(SLIBRARY) $@ 338 332 endif 339 333 340 334 %.o: %.S | depend 341 $(CC_JOB) -c -MD $(DEFS) $(CFLAGS) $(EXTRA_CFLAGS) $(AS_CFLAGS) -D__ASM__335 $(CC_JOB) -c -MD -MP $(DEFS) $(CFLAGS) $(EXTRA_CFLAGS) $(AS_CFLAGS) -D__ASM__ 342 336 343 337 %.o: %.s | depend 344 $(CC_JOB) -c -MD $(DEFS) $(CFLAGS) $(EXTRA_CFLAGS) $(AS_CFLAGS) -D__ASM__338 $(CC_JOB) -c -MD -MP $(DEFS) $(CFLAGS) $(EXTRA_CFLAGS) $(AS_CFLAGS) -D__ASM__ 345 339 346 340 %.o: %.c | depend 347 $(CC_JOB) -c -MD $(DEFS) $(CFLAGS) $(EXTRA_CFLAGS)341 $(CC_JOB) -c -MD -MP $(DEFS) $(CFLAGS) $(EXTRA_CFLAGS) 348 342 349 343 %.test.o: %.c | depend 350 $(CC_JOB) -c -MD $(DEFS) $(CFLAGS) $(EXTRA_CFLAGS) $(TEST_CFLAGS)344 $(CC_JOB) -c -MD -MP $(DEFS) $(CFLAGS) $(EXTRA_CFLAGS) $(TEST_CFLAGS) 351 345 352 346 %.lo: %.S | depend 353 $(CC_JOB) -c -MD $(DEFS) $(LIB_CFLAGS) $(EXTRA_CFLAGS) $(AS_CFLAGS) -D__ASM__347 $(CC_JOB) -c -MD -MP $(DEFS) $(LIB_CFLAGS) $(EXTRA_CFLAGS) $(AS_CFLAGS) -D__ASM__ 354 348 355 349 %.lo: %.s | depend 356 $(CC_JOB) -c -MD $(DEFS) $(LIB_CFLAGS) $(EXTRA_CFLAGS) $(AS_CFLAGS) -D__ASM__350 $(CC_JOB) -c -MD -MP $(DEFS) $(LIB_CFLAGS) $(EXTRA_CFLAGS) $(AS_CFLAGS) -D__ASM__ 357 351 358 352 %.lo: %.c | depend 359 $(CC_JOB) -c -MD $(DEFS) $(LIB_CFLAGS) $(EXTRA_CFLAGS) 360 361 depend: $(PRE_DEPEND) 362 363 ## 364 # This explicit dependecy of the output binary on the object files seems to be 365 # necessary to prevent parallel build failures (GNU make bug #26893 ???). 366 $(OUTPUT): $(OBJECTS) 367 368 $(LARCHIVE): $(LOBJECTS) 353 $(CC_JOB) -c -MD -MP $(DEFS) $(LIB_CFLAGS) $(EXTRA_CFLAGS) 354
Note:
See TracChangeset
for help on using the changeset viewer.