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