]> pd.if.org Git - liblfds/blob - makefile.windows
d899414b07571018ddd5c39aebf39908fb22cfe3
[liblfds] / makefile.windows
1 ##### paths #####\r
2 BINDIR = bin\r
3 INCDIR = ../liblfds611/inc\r
4 LIBDIR = ../liblfds611/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).exe\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)/%.obj,$(notdir $(SOURCES)))\r
17 SYSLIBS = kernel32.lib\r
18 USRLIBS = liblfds611.lib\r
19 \r
20 ##### tools #####\r
21 MAKE    = make\r
22 MFLAGS  = \r
23 \r
24 CC      = cl\r
25 CFBASE  = /nologo /W4 /WX /c "-I$(SRCDIR)" "-I$(INCLUDE)" "-I$(INCDIR)" "/Fd$(BINDIR)\$(BINNAME).pdb" /D UNICODE /D _UNICODE /DWIN32_LEAN_AND_MEAN /D_CRT_SECURE_NO_WARNINGS\r
26 CFREL   = /Ox /DNDEBUG /MT\r
27 CFDBG   = /Od /Gm /Zi /D_DEBUG /MTd\r
28 \r
29 LD      = link\r
30 LFBASE  = "/libpath:$(LIB)" "/libpath:$(LIBDIR)" /nologo /subsystem:console /nodefaultlib /nxcompat /wx\r
31 LFREL   = /incremental:no\r
32 LFDBG   = /debug "/pdb:$(BINDIR)\$(BINNAME).pdb"\r
33 \r
34 ##### variants #####\r
35 CFLAGS  = $(CFBASE) $(CFDBG)\r
36 LFLAGS  = $(LFBASE) $(LFDBG)\r
37 CLIB    = libcmtd.lib\r
38 \r
39 ifeq ($(MAKECMDGOALS),rel)\r
40   CFLAGS  = $(CFBASE) $(CFREL)\r
41   LFLAGS  = $(LFBASE) $(LFREL)\r
42   CLIB    = libcmt.lib\r
43 endif\r
44 \r
45 ##### search paths #####\r
46 vpath %.c $(patsubst %,$(SRCDIR)/%;,$(SRCDIRS))\r
47 \r
48 ##### implicit rules #####\r
49 $(OBJDIR)/%.obj : %.c\r
50         $(CC) $(CFLAGS) "/Fo$@" $<\r
51 \r
52 ##### explicit rules #####\r
53 $(BINARY) : $(OBJECTS)\r
54         $(LD) $(LFLAGS) $(CLIB) $(SYSLIBS) $(USRLIBS) $(OBJECTS) /out:$(BINARY)\r
55 \r
56 ##### phony #####\r
57 .PHONY : clean rel dbg\r
58 \r
59 clean : \r
60         @erase /Q $(OBJDIR)\*.obj $(BINDIR)\$(BINNAME).* $(QUIETLY)\r
61 \r
62 rel : $(BINARY)\r
63 dbg : $(BINARY)\r
64 \r