-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathMakefile.am
71 lines (50 loc) · 2.19 KB
/
Makefile.am
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
AUTOMAKE_OPTIONS = foreign subdir-objects
MAINTAINERCLEANFILES = aclocal.m4 autom4te.cache compile config.og autoscan.og config.guess config.status config.sub configure configure.scan depcomp install-sh ltmain.sh Makefile Makefile.in
AM_CFLAGS = -I./include
CLEANFILES = libexpreval.@SHARED_EXTENSION@ map.sym
# Static library
lib_LIBRARIES = libexpreval.a
include_HEADERS = include/expreval.h
libexpreval_a_SOURCES = src/lib/eval.c src/lib/jit_compiler.c src/lib/parser.c src/lib/tokenizer.c src/lib/list.c src/lib/eil.c
if ARCH_i686
libexpreval_a_SOURCES += src/lib/arch/@ARCH@/@OS@/linux_i686.c
libexpreval_a_LIBADD = src/lib/arch/@ARCH@/cpuid.o
CLEANFILES += src/lib/arch/@ARCH@/cpuid.o
src/lib/arch/i686/cpuid.o:
$(AS) -f elf32 src/lib/arch/@ARCH@/cpuid.asm -o src/lib/arch/@ARCH@/cpuid.o
endif
if ARCH_x86_64
libexpreval_a_SOURCES += src/lib/arch/@ARCH@/@OS@/linux_x86_64.c
libexpreval_a_LIBADD = src/lib/arch/@ARCH@/cpuid.o
CLEANFILES += src/lib/arch/@ARCH@/cpuid.o
src/lib/arch/x86_64/cpuid.o:
$(AS) -f elf64 src/lib/arch/@ARCH@/cpuid.asm -o src/lib/arch/@ARCH@/cpuid.o
endif
if ARCH_AARCH64
libexpreval_a_SOURCES += src/lib/arch/@ARCH@/@OS@/linux_aarch64.c
endif
# Shared library
if MAKE_SHARED_LIBRARY
shared_library: libexpreval.a map.sym
$(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -fPIC -Wl,--version-script=map.sym -shared $(libexpreval_a_LIBADD) $$(echo $(libexpreval_a_SOURCES) | $(SED) "s/\.c/.o/g") -o libexpreval.@SHARED_EXTENSION@
rm map.sym
install-exec-local: libexpreval.@SHARED_EXTENSION@
cp libexpreval.@SHARED_EXTENSION@ ${libdir}
uninstall-local:
rm ${libdir}/libexpreval.@SHARED_EXTENSION@
map.sym: include/expreval.h
echo -e "{\n\tglobal:" > map.sym
$(AWK) -F'[ (]' '(/.+\(.*\);/ && !match($$1, /typedef/)){sub("*","",$$2);print "\t\t"$$2";";}' include/expreval.h >> map.sym
echo -e "\tlocal:\n\t\t*;\n};" >> map.sym
else
shared_library:
endif
### Test programs
noinst_PROGRAMS = performance_test prova test_main
performance_test_SOURCES = src/test/performance_test.c
performance_test_LDADD = libexpreval.a
prova_SOURCES = src/test/prova.c
prova_LDADD = libexpreval.a
test_main_SOURCES = src/test/test_main.c
test_main_LDADD = libexpreval.a
all-local: shared_library