Changes in uspace/Makefile.common [664af708:67b05ff] in mainline
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/Makefile.common
r664af708 r67b05ff 40 40 # BINARY (/) binary output name (like appname) 41 41 # LIBRARY (/) library output name (like libname) 42 # 42 43 # EXTRA_OUTPUT additional output targets 43 44 # 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 44 55 # 45 56 # (x) required variables … … 73 84 endif 74 85 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 75 97 DEPEND = Makefile.depend 76 98 DEPEND_PREV = $(DEPEND).prev … … 84 106 LIBBLOCK_PREFIX = $(LIB_PREFIX)/block 85 107 LIBFS_PREFIX = $(LIB_PREFIX)/fs 108 LIBIMGMAP_PREFIX = $(LIB_PREFIX)/imgmap 86 109 LIBCLUI_PREFIX = $(LIB_PREFIX)/clui 110 111 LIBEXT2_PREFIX = $(LIB_PREFIX)/ext2 112 113 LIBUSB_PREFIX = $(LIB_PREFIX)/usb 114 LIBUSBHOST_PREFIX = $(LIB_PREFIX)/usbhost 115 LIBUSBDEV_PREFIX = $(LIB_PREFIX)/usbdev 116 LIBUSBHID_PREFIX = $(LIB_PREFIX)/usbhid 117 LIBUSBVIRT_PREFIX = $(LIB_PREFIX)/usbvirt 87 118 88 119 LIBDRV_PREFIX = $(LIB_PREFIX)/drv … … 90 121 LIBNET_PREFIX = $(LIB_PREFIX)/net 91 122 123 LIBSCSI_PREFIX = $(LIB_PREFIX)/scsi 124 125 ifeq ($(STATIC_NEEDED),y) 126 STATIC_BUILD = y 127 else 128 ifeq ($(STATIC_ONLY),y) 129 STATIC_BUILD = y 130 else 131 ifeq ($(CONFIG_USE_SHARED_LIBS), y) 132 STATIC_BUILD = n 133 else 134 STATIC_BUILD = y 135 endif 136 endif 137 endif 138 139 # Build static whenever we use libusb because that library uses 140 # thread local variables 141 ifneq ($(findstring usb, $(LIBS)),) 142 STATIC_BUILD = y 143 endif 144 145 ifeq ($(STATIC_BUILD), y) 92 146 BASE_LIBS = $(LIBC_PREFIX)/libc.a $(LIBSOFTINT_PREFIX)/libsoftint.a 93 94 147 LINKER_SCRIPT ?= $(LIBC_PREFIX)/arch/$(UARCH)/_link.ld 148 else 149 BASE_LIBS = $(LIBC_PREFIX)/libc.so0 $(LIBSOFTINT_PREFIX)/libsofti.so0 150 LFLAGS = -Bdynamic 151 LINKER_SCRIPT ?= $(LIBC_PREFIX)/arch/$(UARCH)/_link-dlexe.ld 152 endif 95 153 96 154 ifeq ($(CONFIG_OPTIMIZE_FOR_SIZE),y) … … 102 160 .PHONY: all clean 103 161 104 all: $(VERSION_DEF) $(COMMON_MAKEFILE) $(CONFIG_MAKEFILE) $(CONFIG_HEADER) $(LIBS) $(OUTPUT) $( EXTRA_OUTPUT)162 all: $(VERSION_DEF) $(COMMON_MAKEFILE) $(CONFIG_MAKEFILE) $(CONFIG_HEADER) $(LIBS) $(OUTPUT) $(LOUTPUT) $(EXTRA_OUTPUT) 105 163 -[ -f $(DEPEND) ] && cp -a $(DEPEND) $(DEPEND_PREV) 106 164 107 165 clean: 108 rm -f $(DEPEND) $(DEPEND_PREV) $(JOB) $(OUTPUT) $( EXTRA_OUTPUT) $(EXTRA_CLEAN)166 rm -f $(DEPEND) $(DEPEND_PREV) $(JOB) $(OUTPUT) $(LARCHIVE) $(LOUTPUT) $(EXTRA_OUTPUT) $(EXTRA_CLEAN) 109 167 find . -name '*.o' -follow -exec rm \{\} \; 168 find . -name '*.lo' -follow -exec rm \{\} \; 110 169 111 170 GCC_CFLAGS = -I$(LIBC_PREFIX)/include -O$(OPTIMIZATION) -imacros $(CONFIG_HEADER) \ … … 113 172 -finput-charset=UTF-8 -ffreestanding -fno-builtin -nostdlib -nostdinc \ 114 173 -Wall -Wextra -Wno-clobbered -Wno-unused-parameter -Wmissing-prototypes \ 115 - Werror-implicit-function-declaration -Wwrite-strings \174 -std=gnu99 -Werror-implicit-function-declaration -Wwrite-strings \ 116 175 -pipe -g -D__$(ENDIANESS)__ 117 176 … … 130 189 -pipe -g -arch $(CLANG_ARCH) -D__$(ENDIANESS)__ 131 190 191 LIB_CFLAGS = $(CFLAGS) -fPIC -D__IN_SHARED_LIBC__ 192 LIB_LFLAGS = $(LFLAGS) -shared -soname $(LSONAME) --whole-archive 193 132 194 ifeq ($(CONFIG_DEBUG),y) 133 195 GCC_CFLAGS += -Werror … … 175 237 176 238 OBJECTS := $(addsuffix .o,$(basename $(SOURCES))) 239 LOBJECTS := $(addsuffix .lo,$(basename $(SOURCES))) 177 240 178 241 ifneq ($(BINARY),) … … 185 248 186 249 $(BINARY): $(LINKER_SCRIPT) $(OBJECTS) $(LIBS) $(BASE_LIBS) 187 $(LD) - N$(LFLAGS) -T $(LINKER_SCRIPT) -M -Map $(BINARY).map -o $(BINARY) $(OBJECTS) $(LIBS) $(BASE_LIBS)250 $(LD) -n $(LFLAGS) -T $(LINKER_SCRIPT) -M -Map $(BINARY).map -o $(BINARY) $(OBJECTS) $(LIBS) $(BASE_LIBS) 188 251 ifeq ($(CONFIG_STRIP_BINARIES),y) 189 252 $(STRIP) $(BINARY) 190 253 endif 254 endif 255 256 ifneq ($(SLIBRARY),) 257 %.disasm: $(LOUTPUT) 258 ifeq ($(CONFIG_LINE_DEBUG),y) 259 $(OBJDUMP) -d -S $< > $@ 260 else 261 $(OBJDUMP) -d $< > $@ 262 endif 263 264 $(LOUTPUT): $(LARCHIVE) $(LIBC_PREFIX)/arch/$(UARCH)/_link-shlib.ld 265 $(LD) -T $(LIBC_PREFIX)/arch/$(UARCH)/_link-shlib.ld $(LIB_LFLAGS) $(LARCHIVE) -o $@ -Map $(LOUTPUT).map 266 267 $(LIBRARY).so: 268 ln -s $(SLIBRARY) $@ 269 270 $(LSONAME): 271 ln -s $(SLIBRARY) $@ 191 272 endif 192 273 … … 196 277 endif 197 278 279 ifneq ($(SLIBRARY),) 280 %.la: $(LOBJECTS) 281 $(AR) rc $@ $(LOBJECTS) 282 endif 283 198 284 %.o: %.S $(DEPEND) 199 285 $(CC) $(DEFS) $(CFLAGS) -D__ASM__ -c $< -o $@ … … 210 296 %.o: %.c $(DEPEND) 211 297 $(CC) $(DEFS) $(CFLAGS) -c $< -o $@ 298 ifeq ($(PRECHECK),y) 299 $(JOBFILE) $(JOB) $< $@ cc core $(DEFS) $(CFLAGS) 300 endif 301 302 %.lo: %.S $(DEPEND) 303 $(CC) $(DEFS) $(LIB_CFLAGS) -D__ASM__ -c $< -o $@ 304 ifeq ($(PRECHECK),y) 305 $(JOBFILE) $(JOB) $< $@ as asm/preproc $(DEFS) $(CFLAGS) -D__ASM__ 306 endif 307 308 %.lo: %.s $(DEPEND) 309 $(AS) $(AFLAGS) -o $@ $< 310 ifeq ($(PRECHECK),y) 311 $(JOBFILE) $(JOB) $< $@ as asm 312 endif 313 314 %.lo: %.c $(DEPEND) 315 $(CC) $(DEFS) $(LIB_CFLAGS) -c $< -o $@ 212 316 ifeq ($(PRECHECK),y) 213 317 $(JOBFILE) $(JOB) $< $@ cc core $(DEFS) $(CFLAGS) … … 223 327 $(OUTPUT): $(OBJECTS) 224 328 329 $(LARCHIVE): $(LOBJECTS)
Note:
See TracChangeset
for help on using the changeset viewer.