Fix makefile to use $@ as output file instead of hardcoded name.
[SXSI/libbp.git] / Makefile
1 POPCOUNT=$(shell grep -q popcnt /proc/cpuinfo && echo 1)
2
3 ifeq ($(POPCOUNT), 1)
4         POPCOUNT_FLAG=-DHAS_NATIVE_POPCOUNT
5 else
6         POPCOUNT_FLAG=
7 endif
8
9 ifeq ($(VERBOSE), true)
10         HIDE=
11 else
12         HIDE=@
13 endif
14
15 ifeq ($(DEBUG), true)
16         OPT_FLAGS=-O0 -g $(POPCOUNT_FLAG) -fno-PIC -static
17 else
18         OPT_FLAGS=-O4 $(POPCOUNT_FLAG) -fno-PIC -static
19 endif
20
21
22
23 INC_FLAGS=-I.
24 CFLAGS= $(INC_FLAGS) $(OPT_FLAGS)
25 CXXFLAGS= $(INC_FLAGS) $(OPT_FLAGS)
26 CC=gcc
27
28
29 OBJECTS_BP=bp.o darray.o bpcore.o
30 LIB_BP=libbpa.a
31
32 all: depend $(LIB_BP)
33
34 $(LIB_BP): $(OBJECTS_BP)
35         @echo [Link] $@
36         $(HIDE) ar rcs $@ $(OBJECTS_BP)
37
38 %o: %c
39         @echo [C] $@
40         $(HIDE) $(CC) -c $(CFLAGS) $< -o $@
41
42 %o: %cpp
43         @echo [C++] $@
44         $(HIDE) $(CC) -c $(CXXFLAGS)  $< -o $@
45
46 depend:
47         @echo [DEPEND]
48         $(HIDE) (gcc -MM *.c) > $@
49
50 clean:
51         @echo [CLEAN]
52         $(HIDE) rm -f *.[ao] depend
53
54 -include depend
55