source: mainline/uspace/lib/posix/Makefile@ 8cffdf5

lfn serial ticket/834-toolchain-update topic/msim-upgrade topic/simplify-dev-export
Last change on this file since 8cffdf5 was c60e9ee, checked in by Vojtech Horky <vojtechhorky@…>, 11 years ago

Fix inclusions of math headers in libposix

  • Property mode set to 100644
File size: 3.5 KB
Line 
1#
2# Copyright (c) 2011 Petr Koupy
3# Copyright (c) 2011 Jiri Zarevucky
4# All rights reserved.
5#
6# Redistribution and use in source and binary forms, with or without
7# modification, are permitted provided that the following conditions
8# are met:
9#
10# - Redistributions of source code must retain the above copyright
11# notice, this list of conditions and the following disclaimer.
12# - Redistributions in binary form must reproduce the above copyright
13# notice, this list of conditions and the following disclaimer in the
14# documentation and/or other materials provided with the distribution.
15# - The name of the author may not be used to endorse or promote products
16# derived from this software without specific prior written permission.
17#
18# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
19# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
20# OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
21# IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
22# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
23# NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
24# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
25# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
26# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
27# THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
28#
29
30USPACE_PREFIX = ../..
31LIBRARY = libposix
32SLIBRARY = libposix.so.0.0
33LSONAME = libposix.so0
34
35EXTRA_CFLAGS = -Iinclude/
36
37INCLUDE_LIBC = ./include/libc
38INCLUDE_LIBMATH = ./include/libmath
39
40LIBC_FILE = $(LIBC_PREFIX)/libc.a
41
42FIXED_POSIX_LIBRARY = libposixaslibc.a
43FIXED_C_LIBRARY = libc4posix.a
44
45REDEFS_HIDE_LIBC = redefs-hide-libc-symbols.list
46REDEFS_SHOW_LIBPOSIX = redefs-show-posix-symbols.list
47COLLISIONS_LIST = collisions.list
48
49PRE_DEPEND = $(INCLUDE_LIBC) $(INCLUDE_LIBMATH)
50EXTRA_CLEAN = \
51 $(INCLUDE_LIBC) $(INCLUDE_LIBMATH) \
52 $(REDEFS_HIDE_LIBC) $(REDEFS_SHOW_LIBPOSIX) \
53 $(COLLISIONS_LIST)
54EXTRA_OUTPUT = $(FIXED_C_LIBRARY) $(FIXED_POSIX_LIBRARY)
55
56SOURCES = \
57 source/ctype.c \
58 source/errno.c \
59 source/fcntl.c \
60 source/fnmatch.c \
61 source/getopt.c \
62 source/locale.c \
63 source/pthread/condvar.c \
64 source/pthread/keys.c \
65 source/pthread/mutex.c \
66 source/pthread/threads.c \
67 source/pwd.c \
68 source/signal.c \
69 source/stdio.c \
70 source/stdio/scanf.c \
71 source/stdlib.c \
72 source/stdlib/strtol.c \
73 source/stdlib/strtold.c \
74 source/string.c \
75 source/strings.c \
76 source/sys/mman.c \
77 source/sys/stat.c \
78 source/sys/wait.c \
79 source/time.c \
80 source/unistd.c
81
82include $(USPACE_PREFIX)/Makefile.common
83
84$(INCLUDE_LIBC): ../c/include
85 ln -s -f -n ../$^ $@
86
87$(INCLUDE_LIBMATH): ../math/include
88 ln -s -f -n ../$^ $@
89
90$(FIXED_C_LIBRARY): $(REDEFS_HIDE_LIBC) $(REDEFS_SHOW_LIBPOSIX)
91 $(OBJCOPY) --redefine-syms=$(REDEFS_HIDE_LIBC) $(LIBC_FILE) $@
92 $(OBJCOPY) --redefine-syms=$(REDEFS_SHOW_LIBPOSIX) $@ $@
93
94$(FIXED_POSIX_LIBRARY): $(LIBRARY).a $(REDEFS_HIDE_LIBC) $(REDEFS_SHOW_LIBPOSIX)
95 $(OBJCOPY) --redefine-syms=$(REDEFS_HIDE_LIBC) $(LIBRARY).a $@
96 $(OBJCOPY) --redefine-syms=$(REDEFS_SHOW_LIBPOSIX) $@ $@
97
98$(REDEFS_HIDE_LIBC): $(COLLISIONS_LIST)
99 sed 's/.*/& __helenos_libc_&/' <$(COLLISIONS_LIST) >$@
100
101$(REDEFS_SHOW_LIBPOSIX): $(COLLISIONS_LIST)
102 sed 's/.*/posix_& &/' <$(COLLISIONS_LIST) >$@
103
104$(COLLISIONS_LIST):
105 find ./include/posix -name '*.h' -exec \
106 sed -n -e '/^#/d' -e 's/__POSIX_DEF__/\n&/gp' {} \; | \
107 sed -n -e 's/__POSIX_DEF__(\([^)]*\)).*/\1/p' | \
108 sort -u >$@
Note: See TracBrowser for help on using the repository browser.