Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • uspace/lib/posix/Makefile

    ra3da2b2 rc773adc  
    3737INCLUDE_LIBC = ./include/libc
    3838
     39LIBC_FILE = $(LIBC_PREFIX)/libc.a
     40
     41FIXED_POSIX_LIBRARY = libposixaslibc.a
     42FIXED_C_LIBRARY = libc4posix.a
     43
     44REDEFS_HIDE_LIBC = redefs-hide-libc-symbols.list
     45REDEFS_SHOW_LIBPOSIX = redefs-show-posix-symbols.list
     46COLLISIONS_LIST = collisions.list
     47
    3948PRE_DEPEND = $(INCLUDE_LIBC)
    40 EXTRA_CLEAN = $(INCLUDE_LIBC)
     49EXTRA_CLEAN = \
     50        $(INCLUDE_LIBC) \
     51        $(REDEFS_HIDE_LIBC) $(REDEFS_SHOW_LIBPOSIX) \
     52        $(COLLISIONS_LIST)
     53EXTRA_OUTPUT = $(FIXED_C_LIBRARY) $(FIXED_POSIX_LIBRARY)
    4154
    4255SOURCES = \
     
    4760        source/getopt.c \
    4861        source/locale.c \
    49         source/math.c \
     62        source/pthread/condvar.c \
     63        source/pthread/keys.c \
     64        source/pthread/mutex.c \
     65        source/pthread/threads.c \
    5066        source/pwd.c \
    5167        source/signal.c \
     
    5773        source/string.c \
    5874        source/strings.c \
     75        source/sys/mman.c \
    5976        source/sys/stat.c \
    6077        source/sys/wait.c \
     
    6683$(INCLUDE_LIBC): ../c/include
    6784        ln -s -f -n ../$^ $@
     85
     86$(FIXED_C_LIBRARY): $(REDEFS_HIDE_LIBC) $(REDEFS_SHOW_LIBPOSIX)
     87        $(OBJCOPY) --redefine-syms=$(REDEFS_HIDE_LIBC) $(LIBC_FILE) $@
     88        $(OBJCOPY) --redefine-syms=$(REDEFS_SHOW_LIBPOSIX) $@ $@
     89
     90$(FIXED_POSIX_LIBRARY): $(LIBRARY).a $(REDEFS_HIDE_LIBC) $(REDEFS_SHOW_LIBPOSIX)
     91        $(OBJCOPY) --redefine-syms=$(REDEFS_HIDE_LIBC) $(LIBRARY).a $@
     92        $(OBJCOPY) --redefine-syms=$(REDEFS_SHOW_LIBPOSIX) $@ $@
     93
     94$(REDEFS_HIDE_LIBC): $(COLLISIONS_LIST)
     95        sed 's/.*/& __helenos_libc_&/' <$(COLLISIONS_LIST) >$@
     96
     97$(REDEFS_SHOW_LIBPOSIX): $(COLLISIONS_LIST)
     98        sed 's/.*/posix_& &/' <$(COLLISIONS_LIST) >$@
     99
     100$(COLLISIONS_LIST):
     101        find ./include/posix -name '*.h' -exec \
     102                sed -n -e '/^#/d' -e 's/__POSIX_DEF__/\n&/gp' {} \; | \
     103                sed -n -e 's/__POSIX_DEF__(\([^)]*\)).*/\1/p' | \
     104                sort -u >$@
Note: See TracChangeset for help on using the changeset viewer.