]> pd.if.org Git - liblfds/blob - liblfds/liblfds6.1.0/test/makefile.linux
Initial import (all versions, including the new 7.1.0)
[liblfds] / liblfds / liblfds6.1.0 / test / makefile.linux
1 ##### paths #####
2 BINDIR = bin
3 INCDIR = ../liblfds610/inc
4 LIBDIR = ../liblfds610/bin
5 OBJDIR = obj
6 SRCDIR = src
7
8 ##### misc #####
9 QUIETLY = 1>nul 2>nul
10
11 ##### sources, objects and libraries #####
12 BINNAME = test
13 BINARY  = $(BINDIR)/$(BINNAME)
14 SRCDIRS = .
15 SOURCES = abstraction_cpu_count.c test_abstraction.c abstraction_thread_start.c abstraction_thread_wait.c benchmark_freelist.c benchmark_queue.c benchmark_ringbuffer.c benchmark_stack.c test_freelist.c main.c misc.c test_queue.c test_ringbuffer.c test_slist.c test_stack.c
16 OBJECTS = $(patsubst %.c,$(OBJDIR)/%.o,$(notdir $(SOURCES)))
17 SYSLIBS = -lpthread -lc -lm
18 USRLIBS = -llfds610
19
20 ##### CPU variants #####
21 UNAME   = $(shell uname -m)
22 GCCARCH = -march=$(UNAME)
23
24 ifeq ($(UNAME),x86_64)
25   GCCARCH = -march=core2
26 endif
27
28 ifeq ($(findstring arm,$(UNAME)),arm)
29   GCCARCH = -march=armv6k -marm
30 endif
31
32 ##### tools #####
33 MAKE    = make
34 MFLAGS  = 
35
36 DG      = gcc
37 DGFLAGS = -MM -std=c99 -I"$(SRCDIR)" -I"$(INCDIR)" 
38
39 CC      = gcc
40 CFBASE  = -Wall -Wno-unknown-pragmas -std=c99 $(GCCARCH) -pthread -c -I"$(SRCDIR)" -I"$(INCDIR)"
41 CFREL   = -O2 -Wno-strict-aliasing
42 CFDBG   = -O0 -g
43
44 LD      = gcc
45 LFBASE  = -L"$(LIBDIR)"
46 LFREL   = -O2 -s
47 LFDBG   = -O0 -g
48
49 ##### variants #####
50 CFLAGS  = $(CFBASE) $(CFDBG)
51 LFLAGS  = $(LFBASE) $(LFDBG)
52
53 ifeq ($(MAKECMDGOALS),rel)
54   CFLAGS  = $(CFBASE) $(CFREL)
55   LFLAGS  = $(LFBASE) $(LFREL)
56 endif
57
58 ##### search paths #####
59 vpath %.c $(patsubst %,$(SRCDIR)/%:,$(SRCDIRS))
60
61 ##### implicit rules #####
62 $(OBJDIR)/%.o : %.c
63         $(DG) $(DGFLAGS) $< >$(OBJDIR)/$*.d
64         $(CC) $(CFLAGS) -o $@ $<
65
66 ##### explicit rules #####
67 $(BINARY) : $(OBJECTS)
68         $(LD) -o $(BINARY) $(LFLAGS) $(OBJECTS) $(USRLIBS) $(SYSLIBS)
69         chmod +x $(BINARY)
70
71 ##### phony #####
72 .PHONY : clean rel dbg
73
74 clean : 
75         @rm -f $(BINDIR)/$(BINNAME) $(OBJDIR)/*.o $(OBJDIR)/*.d
76
77 rel : $(BINARY)
78 dbg : $(BINARY)
79
80 ##### dependencies #####
81 -include $(DEPENDS)
82