Added -pedantic and -ansi to CFLAGS and cleaned warnings
[rice.git] / Makefile
blob8173e8d0305e7587f91aaf6fe5ec8f59abeedd96
1 NAME=rice
2 MAJOR=0
3 MINOR=0
5 all: lib$(NAME).so lib$(NAME).a
7 SOURCES = $(shell find src -name '*.c')
8 SHARED_OBJS = $(SOURCES:.c=.shared.o)
9 STATIC_OBJS = $(SOURCES:.c=.static.o)
11 CFLAGS=-O2 -g -Wall -pedantic -ansi
12 EXTRA_CFLAGS=
13 STATIC_CFLAGS= $(CFLAGS) $(EXTRA_CFLAGS)
14 SHARED_CFLAGS= $(CFLAGS) $(EXTRA_CFLAGS) -fPIC
15 LDFLAGS= -Wl,-z,defs -Wl,--as-needed -Wl,--no-undefined
17 lib$(NAME).so.$(MAJOR).$(MINOR): $(SHARED_OBJS)
18 g++ $(LDFLAGS) -shared \
19 -Wl,-soname,lib$(NAME).so.$(MAJOR) \
20 -o lib$(NAME).so.$(MAJOR).$(MINOR) \
21 $+ -o $@ $(LIBS)
23 lib$(NAME).so: lib$(NAME).so.$(MAJOR).$(MINOR)
24 rm -f $@.$(MAJOR)
25 ln -s $@.$(MAJOR).$(MINOR) $@.$(MAJOR)
26 rm -f $@
27 ln -s $@.$(MAJOR) $@
29 lib$(NAME).a: $(STATIC_OBJS)
30 ar cru $@ $+
32 %.o: %.cpp
33 g++ -o $@ -c $+ $(CFLAGS)
35 %.o: %.c
36 gcc -o $@ -c $+ $(CFLAGS)
38 %.so : %.o
39 g++ $(LDFLAGS) -shared $^ -o $@
41 %.shared.o: %.cpp
42 g++ -o $@ -c $+ $(SHARED_CFLAGS)
44 %.shared.o: %.c
45 gcc -o $@ -c $+ $(SHARED_CFLAGS)
47 %.static.o: %.cpp
48 g++ -o $@ -c $+ $(STATIC_CFLAGS)
50 %.static.o: %.c
51 gcc -o $@ -c $+ $(STATIC_CFLAGS)
53 clean:
54 rm -f $(SHARED_OBJS)
55 rm -f $(STATIC_OBJS)
56 rm -f $(FIXED_OBJS)
57 rm -f $(STATIC_FIXED_OBJS)
58 rm -f *.so *.so* *.a
60 DESTDIR=
62 install:
63 mkdir -p "$(DESTDIR)/usr/lib/"
64 cp -a *.a "$(DESTDIR)/usr/lib/"
65 cp -a *.so* "$(DESTDIR)/usr/lib/"
66 mkdir -p "$(DESTDIR)/usr/include/"
67 cp -a include/* "$(DESTDIR)/usr/include/"