Changeset 04803bf in mainline for uspace/lib/c/Makefile


Ignore:
Timestamp:
2011-03-21T22:00:17Z (14 years ago)
Author:
Jiri Svoboda <jiri@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
143932e
Parents:
b50b5af2 (diff), 7308e84 (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.
Message:

Merge mainline changes (needs fixes).

File:
1 moved

Legend:

Unmodified
Added
Removed
  • uspace/lib/c/Makefile

    rb50b5af2 r04803bf  
    11#
    22# Copyright (c) 2005 Martin Decky
    3 # Copyright (c) 2008 Jiri Svoboda
     3# Copyright (c) 2007 Jakub Jermar
    44# All rights reserved.
    55#
     
    2828#
    2929
    30 ## Common compiler flags
    31 #
     30USPACE_PREFIX = ../..
     31ROOT_PATH = $(USPACE_PREFIX)/..
    3232
    33 LIBC_PREFIX = $(shell pwd)
    34 SOFTINT_PREFIX = ../softint
     33INCLUDE_KERNEL = include/kernel
     34INCLUDE_ARCH = include/arch
     35INCLUDE_LIBARCH = include/libarch
     36INCLUDE_RTLDARCH = rtld/include/arch
    3537
     38COMMON_MAKEFILE = $(ROOT_PATH)/Makefile.common
     39COMMON_HEADER = $(ROOT_PATH)/common.h
     40COMMON_HEADER_ARCH = arch/$(UARCH)/include/common.h
    3641
    37 ## Setup toolchain
    38 #
     42CONFIG_MAKEFILE = $(ROOT_PATH)/Makefile.config
    3943
    40 include $(LIBC_PREFIX)/Makefile.toolchain
     44PRE_DEPEND = $(INCLUDE_KERNEL) $(INCLUDE_ARCH) $(INCLUDE_LIBARCH) $(INCLUDE_RTLDARCH) $(COMMON_HEADER_ARCH)
     45EXTRA_OUTPUT = $(LINKER_SCRIPT)
     46EXTRA_CLEAN = $(INCLUDE_KERNEL) $(INCLUDE_ARCH) $(INCLUDE_LIBARCH) $(INCLUDE_RTLDARCH) $(COMMON_HEADER_ARCH) $(LINKER_SCRIPT)
     47LIBRARY = libc
     48
     49-include $(COMMON_MAKEFILE)
     50-include $(CONFIG_MAKEFILE)
     51-include arch/$(UARCH)/Makefile.inc
    4152-include rtld/arch/$(UARCH)/Makefile.inc
    4253
    43 CFLAGS += -Irtld/include -I../../srv/loader/include -D__32_BITS__
    44 PIC_CFLAGS := $(CFLAGS) -fPIC -D__IN_SHARED_LIBC__
    45 
    46 ## Sources
    47 #
     54EXTRA_CFLAGS += -Irtld/include -I../../srv/loader/include
    4855
    4956GENERIC_SOURCES = \
     
    5259        generic/as.c \
    5360        generic/cap.c \
     61        generic/clipboard.c \
    5462        generic/devmap.c \
     63        generic/devman.c \
     64        generic/device/hw_res.c \
     65        generic/device/char_dev.c \
     66        generic/dlfcn.c \
    5567        generic/event.c \
    5668        generic/errno.c \
    5769        generic/mem.c \
    58         generic/string.c \
     70        generic/str.c \
     71        generic/str_error.c \
    5972        generic/fibril.c \
    60         generic/fibril_sync.c \
     73        generic/fibril_synch.c \
    6174        generic/pcb.c \
    6275        generic/smc.c \
     
    7487        generic/io/printf_core.c \
    7588        generic/io/console.c \
     89        generic/io/screenbuffer.c \
     90        generic/ipc/ns.c \
    7691        generic/malloc.c \
    7792        generic/sysinfo.c \
    7893        generic/ipc.c \
    7994        generic/async.c \
    80         generic/dlfcn.c \
     95        generic/async_sess.c \
    8196        generic/loader.c \
    8297        generic/getopt.c \
    83         generic/adt/list.o \
    84         generic/adt/hash_table.o \
     98        generic/adt/list.c \
     99        generic/adt/hash_table.c \
     100        generic/adt/dynamic_fifo.c \
     101        generic/adt/measured_strings.c \
     102        generic/adt/char_map.c \
    85103        generic/time.c \
    86         generic/err.c \
    87104        generic/stdlib.c \
    88105        generic/mman.c \
     
    90107        generic/vfs/vfs.c \
    91108        generic/vfs/canonify.c \
     109        generic/net/inet.c \
     110        generic/net/icmp_common.c \
     111        generic/net/icmp_api.c \
     112        generic/net/modules.c \
     113        generic/net/packet.c \
     114        generic/net/socket_client.c \
     115        generic/net/socket_parse.c \
     116        generic/stacktrace.c \
     117        generic/arg_parse.c \
     118        generic/sort.c \
     119        generic/stats.c \
    92120        rtld/rtld.c \
    93121        rtld/elf_load.c \
     
    96124        rtld/symbol.c
    97125
     126SOURCES = \
     127        $(GENERIC_SOURCES) \
     128        $(ARCH_SOURCES)
    98129
    99 ARCH_SOURCES += \
    100         arch/$(UARCH)/src/entry.s \
    101         arch/$(UARCH)/src/thread_entry.s
     130include $(USPACE_PREFIX)/Makefile.common
    102131
    103 GENERIC_OBJECTS := $(addsuffix .o,$(basename $(GENERIC_SOURCES)))
    104 ARCH_OBJECTS := $(addsuffix .o,$(basename $(ARCH_SOURCES)))
    105 OBJECTS := $(GENERIC_OBJECTS) $(ARCH_OBJECTS)
    106 PIC_OBJECTS := $(addsuffix .pio,$(basename $(OBJECTS)))
     132$(INCLUDE_ARCH): $(INCLUDE_KERNEL) $(INCLUDE_KERNEL)/arch
     133        ln -sfn kernel/arch $@
    107134
    108 OUTPUT := libc.a
     135$(INCLUDE_LIBARCH): arch/$(UARCH)/include
     136        ln -sfn ../$< $@
    109137
    110 ifeq ($(CONFIG_BUILD_SHARED_LIBC), y)
    111         OUTPUT += libc.pic.a
    112 endif
     138$(INCLUDE_RTLDARCH): rtld/arch/$(UARCH)/include
     139        ln -sfn ../../$< $@
    113140
    114 .PHONY: all clean depend kerninc
     141$(INCLUDE_KERNEL)/arch: ../../../kernel/generic/include/arch $(INCLUDE_KERNEL)
    115142
    116 all: kerninc $(OUTPUT) arch/$(UARCH)/_link.ld
     143$(INCLUDE_KERNEL): ../../../kernel/generic/include/
     144        ln -sfn ../$< $@
    117145
    118 kerninc:
    119         ln -sfn ../../../../kernel/generic/include include/kernel
    120         ln -sfn kernel/arch include/arch
    121         ln -sfn ../arch/$(UARCH)/include include/libarch
    122         ln -sfn ../arch/$(UARCH)/include rtld/include/arch
     146$(LINKER_SCRIPT): $(LINKER_SCRIPT).in
     147        $(GCC) $(DEFS) $(CFLAGS) -DLIBC_PATH=$(CURDIR) -E -x c $< | grep -v "^\#" > $@
    123148
    124 -include Makefile.depend
    125 
    126 clean:
    127         -rm -f include/kernel include/arch include/libarch rtld/include/arch libc.a libc.pic.a arch/$(UARCH)/_link.ld Makefile.depend
    128         find . \( -name '*.o' -o -name '*.pio' \) -follow -exec rm \{\} \;
    129 
    130 depend: kerninc
    131         -makedepend -f - -- $(DEPEND_DEFS) $(CFLAGS) -- $(ARCH_SOURCES) $(GENERIC_SOURCES) > Makefile.depend 2> /dev/null
    132         -makedepend $(DEFS) $(PIC_CFLAGS) -o.pio -f - $(ARCH_SOURCES) $(GENERIC_SOURCES) >> Makefile.depend 2> /dev/null
    133 
    134 libc.a: depend $(OBJECTS)
    135         $(AR) rc $@ $(LIBS) $(OBJECTS)
    136 
    137 libc.pic.a: depend $(PIC_OBJECTS)
    138         $(AR) rc $@ $(LIBS) $(PIC_OBJECTS)
    139 
    140 arch/$(UARCH)/_link.ld: arch/$(UARCH)/_link.ld.in
    141         $(CC) $(DEFS) $(CFLAGS) -DLIBC_PREFIX=$(LIBC_PREFIX) -E -x c $< | grep -v "^\#" > $@
    142 
    143 %.o: %.S
    144         $(CC) $(DEFS) $(AFLAGS) $(CFLAGS) -D__ASM__ -c $< -o $@
    145 
    146 %.o: %.s
    147         $(AS) $(AFLAGS) $< -o $@
    148 
    149 %.o: %.c
    150         $(CC) $(DEFS) $(CFLAGS) -c $< -o $@
    151 
    152 %.pio: %.S
    153         $(CC) $(DEFS) $(AFLAGS) $(CFLAGS) -D__ASM__ -c $< -o $@
    154 
    155 %.pio: %.s
    156         $(AS) $(AFLAGS) $< -o $@
    157 
    158 %.pio: %.c
    159         $(CC) $(DEFS) $(PIC_CFLAGS) -c $< -o $@
     149$(COMMON_HEADER_ARCH): $(COMMON_HEADER)
     150        ln -sfn ../../../$< $@
Note: See TracChangeset for help on using the changeset viewer.