Changeset 1564c4b in mainline for uspace/Makefile.common
- Timestamp:
- 2011-06-08T19:39:52Z (15 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- 2af29ed
- Parents:
- e686889c (diff), 0eff68e (diff)
Note: this is a merge changeset, the changes displayed below correspond to the merge itself.
Use the(diff)links above to see all the changes relative to each parent. - File:
-
- 1 edited
-
uspace/Makefile.common (modified) (11 diffs)
Legend:
- Unmodified
- Added
- Removed
-
uspace/Makefile.common
re686889c r1564c4b 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 … … 88 110 LIBCLUI_PREFIX = $(LIB_PREFIX)/clui 89 111 112 LIBEXT2_PREFIX = $(LIB_PREFIX)/ext2 113 114 LIBUSB_PREFIX = $(LIB_PREFIX)/usb 115 LIBUSBHOST_PREFIX = $(LIB_PREFIX)/usbhost 116 LIBUSBDEV_PREFIX = $(LIB_PREFIX)/usbdev 117 LIBUSBHID_PREFIX = $(LIB_PREFIX)/usbhid 118 LIBUSBVIRT_PREFIX = $(LIB_PREFIX)/usbvirt 119 90 120 LIBDRV_PREFIX = $(LIB_PREFIX)/drv 91 121 LIBPACKET_PREFIX = $(LIB_PREFIX)/packet 92 122 LIBNET_PREFIX = $(LIB_PREFIX)/net 93 123 124 ifeq ($(STATIC_NEEDED),y) 125 STATIC_BUILD = y 126 else 127 ifeq ($(STATIC_ONLY),y) 128 STATIC_BUILD = y 129 else 130 ifeq ($(CONFIG_USE_SHARED_LIBS), y) 131 STATIC_BUILD = n 132 else 133 STATIC_BUILD = y 134 endif 135 endif 136 endif 137 138 # Build static whenever we use libusb because that library uses 139 # thread local variables 140 ifneq ($(findstring usb, $(LIBS)),) 141 STATIC_BUILD = y 142 endif 143 144 ifeq ($(STATIC_BUILD), y) 94 145 BASE_LIBS = $(LIBC_PREFIX)/libc.a $(LIBSOFTINT_PREFIX)/libsoftint.a 95 96 146 LINKER_SCRIPT ?= $(LIBC_PREFIX)/arch/$(UARCH)/_link.ld 147 else 148 BASE_LIBS = $(LIBC_PREFIX)/libc.so0 $(LIBSOFTINT_PREFIX)/libsofti.so0 149 LFLAGS = -Bdynamic 150 LINKER_SCRIPT ?= $(LIBC_PREFIX)/arch/$(UARCH)/_link-dlexe.ld 151 endif 97 152 98 153 ifeq ($(CONFIG_OPTIMIZE_FOR_SIZE),y) … … 104 159 .PHONY: all clean 105 160 106 all: $(VERSION_DEF) $(COMMON_MAKEFILE) $(CONFIG_MAKEFILE) $(CONFIG_HEADER) $(LIBS) $(OUTPUT) $( EXTRA_OUTPUT)161 all: $(VERSION_DEF) $(COMMON_MAKEFILE) $(CONFIG_MAKEFILE) $(CONFIG_HEADER) $(LIBS) $(OUTPUT) $(LOUTPUT) $(EXTRA_OUTPUT) 107 162 -[ -f $(DEPEND) ] && cp -a $(DEPEND) $(DEPEND_PREV) 108 163 109 164 clean: 110 rm -f $(DEPEND) $(DEPEND_PREV) $(JOB) $(OUTPUT) $( EXTRA_OUTPUT) $(EXTRA_CLEAN)165 rm -f $(DEPEND) $(DEPEND_PREV) $(JOB) $(OUTPUT) $(LARCHIVE) $(LOUTPUT) $(EXTRA_OUTPUT) $(EXTRA_CLEAN) 111 166 find . -name '*.o' -follow -exec rm \{\} \; 167 find . -name '*.lo' -follow -exec rm \{\} \; 112 168 113 169 GCC_CFLAGS = -I$(LIBC_PREFIX)/include -O$(OPTIMIZATION) -imacros $(CONFIG_HEADER) \ … … 115 171 -finput-charset=UTF-8 -ffreestanding -fno-builtin -nostdlib -nostdinc \ 116 172 -Wall -Wextra -Wno-clobbered -Wno-unused-parameter -Wmissing-prototypes \ 117 - Werror-implicit-function-declaration -Wwrite-strings \173 -std=gnu99 -Werror-implicit-function-declaration -Wwrite-strings \ 118 174 -pipe -g -D__$(ENDIANESS)__ 119 175 … … 132 188 -pipe -g -arch $(CLANG_ARCH) -D__$(ENDIANESS)__ 133 189 190 LIB_CFLAGS = $(CFLAGS) -fPIC -D__IN_SHARED_LIBC__ 191 LIB_LFLAGS = $(LFLAGS) -shared -soname $(LSONAME) --whole-archive 192 134 193 ifeq ($(CONFIG_DEBUG),y) 135 194 GCC_CFLAGS += -Werror … … 182 241 183 242 OBJECTS := $(addsuffix .o,$(basename $(SOURCES))) 243 LOBJECTS := $(addsuffix .lo,$(basename $(SOURCES))) 184 244 185 245 ifneq ($(BINARY),) … … 192 252 193 253 $(BINARY): $(LINKER_SCRIPT) $(OBJECTS) $(LIBS) $(BASE_LIBS) 194 $(LD) - N$(LFLAGS) -T $(LINKER_SCRIPT) -M -Map $(BINARY).map -o $(BINARY) $(OBJECTS) $(LIBS) $(BASE_LIBS)254 $(LD) -n $(LFLAGS) -T $(LINKER_SCRIPT) -M -Map $(BINARY).map -o $(BINARY) $(OBJECTS) $(LIBS) $(BASE_LIBS) 195 255 ifeq ($(CONFIG_STRIP_BINARIES),y) 196 256 $(STRIP) $(BINARY) 197 257 endif 258 endif 259 260 ifneq ($(SLIBRARY),) 261 %.disasm: $(LOUTPUT) 262 ifeq ($(CONFIG_LINE_DEBUG),y) 263 $(OBJDUMP) -d -S $< > $@ 264 else 265 $(OBJDUMP) -d $< > $@ 266 endif 267 268 $(LOUTPUT): $(LARCHIVE) $(LIBC_PREFIX)/arch/$(UARCH)/_link-shlib.ld 269 $(LD) -T $(LIBC_PREFIX)/arch/$(UARCH)/_link-shlib.ld $(LIB_LFLAGS) $(LARCHIVE) -o $@ -Map $(LOUTPUT).map 270 271 $(LIBRARY).so: 272 ln -s $(SLIBRARY) $@ 273 274 $(LSONAME): 275 ln -s $(SLIBRARY) $@ 198 276 endif 199 277 … … 203 281 endif 204 282 283 ifneq ($(SLIBRARY),) 284 %.la: $(LOBJECTS) 285 $(AR) rc $@ $(LOBJECTS) 286 endif 287 205 288 %.o: %.S $(DEPEND) 206 289 $(CC) $(DEFS) $(CFLAGS) -D__ASM__ -c $< -o $@ … … 217 300 %.o: %.c $(DEPEND) 218 301 $(CC) $(DEFS) $(CFLAGS) -c $< -o $@ 302 ifeq ($(PRECHECK),y) 303 $(JOBFILE) $(JOB) $< $@ cc core $(DEFS) $(CFLAGS) 304 endif 305 306 %.lo: %.S $(DEPEND) 307 $(CC) $(DEFS) $(LIB_CFLAGS) -D__ASM__ -c $< -o $@ 308 ifeq ($(PRECHECK),y) 309 $(JOBFILE) $(JOB) $< $@ as asm/preproc $(DEFS) $(CFLAGS) -D__ASM__ 310 endif 311 312 %.lo: %.s $(DEPEND) 313 $(AS) $(AFLAGS) -o $@ $< 314 ifeq ($(PRECHECK),y) 315 $(JOBFILE) $(JOB) $< $@ as asm 316 endif 317 318 %.lo: %.c $(DEPEND) 319 $(CC) $(DEFS) $(LIB_CFLAGS) -c $< -o $@ 219 320 ifeq ($(PRECHECK),y) 220 321 $(JOBFILE) $(JOB) $< $@ cc core $(DEFS) $(CFLAGS) … … 230 331 $(OUTPUT): $(OBJECTS) 231 332 333 $(LARCHIVE): $(LOBJECTS)
Note:
See TracChangeset
for help on using the changeset viewer.
