]> pd.if.org Git - liblfds/blob - liblfds/liblfds6.1.1/liblfds611/makefile.windows
Initial import (all versions, including the new 7.1.0)
[liblfds] / liblfds / liblfds6.1.1 / liblfds611 / makefile.windows
1 ##### paths #####\r
2 BINDIR  = bin\r
3 INCDIR  = inc\r
4 OBJDIR  = obj\r
5 SRCDIR  = src\r
6 \r
7 ##### misc #####\r
8 QUIETLY = 1>nul 2>nul\r
9 \r
10 ##### sources, objects and libraries #####\r
11 BINNAME = liblfds611\r
12 LIB_BINARY = $(BINDIR)\$(BINNAME).lib\r
13 DLL_BINARY = $(BINDIR)\$(BINNAME).dll\r
14 SRCDIRS = lfds611_abstraction lfds611_freelist lfds611_liblfds lfds611_queue lfds611_ringbuffer lfds611_slist lfds611_stack\r
15 # TRD : lfds611_abstraction_cas.c lfds611_abstraction_dcas.c lfds611_abstraction_increment.c are inlined and are compiled by every C file\r
16 SOURCES = lfds611_abstraction_free.c lfds611_abstraction_malloc.c \\r
17           lfds611_freelist_delete.c lfds611_freelist_get_and_set.c lfds611_freelist_new.c lfds611_freelist_query.c lfds611_freelist_pop_push.c \\r
18           lfds611_liblfds_abstraction_test_helpers.c lfds611_liblfds_aligned_free.c lfds611_liblfds_aligned_malloc.c \\r
19           lfds611_queue_delete.c lfds611_queue_new.c lfds611_queue_query.c lfds611_queue_queue.c \\r
20           lfds611_ringbuffer_delete.c lfds611_ringbuffer_get_and_put.c lfds611_ringbuffer_new.c lfds611_ringbuffer_query.c \\r
21           lfds611_slist_delete.c lfds611_slist_get_and_set.c lfds611_slist_link.c lfds611_slist_new.c \\r
22           lfds611_stack_delete.c lfds611_stack_new.c lfds611_stack_push_pop.c lfds611_stack_query.c\r
23 OBJECTS = $(patsubst %.c,$(OBJDIR)/%.obj,$(notdir $(SOURCES)))\r
24 SYSLIBS = kernel32.lib\r
25 \r
26 ##### tools #####\r
27 MAKE    = make\r
28 MFLAGS  = \r
29 \r
30 CC      = cl\r
31 CBASE   = /nologo /W4 /WX /c "-I$(SRCDIR)" "-I$(INCDIR)" "/Fd$(BINDIR)\$(BINNAME).pdb" /DUNICODE /D_UNICODE /DWIN32_LEAN_AND_MEAN\r
32 CFREL   = /Ox /DNDEBUG\r
33 CFDBG   = /Od /Gm /Zi /D_DEBUG\r
34 \r
35 AR      = lib\r
36 AFLAGS  = /nologo /subsystem:console /wx /verbose\r
37 \r
38 LD      = link\r
39 LFBASE  = /dll /def:$(BINNAME).def /nologo /subsystem:console /wx /nodefaultlib /nxcompat\r
40 LFREL   = /incremental:no\r
41 LFDBG   = /debug "/pdb:$(BINDIR)\$(BINNAME).pdb"\r
42 \r
43 ##### variants #####\r
44 CFLAGS  = $(CBASE) $(CFDBG) /MTd\r
45 LFLAGS  = $(LFBASE) $(LFDBG)\r
46 CLIB    = libcmtd.lib\r
47 \r
48 ifeq ($(MAKECMDGOALS),librel)\r
49   CFLAGS  = $(CBASE) $(CFREL) /MT\r
50   LFLAGS  = $(LFBASE) $(LFREL)\r
51   CLIB    = libcmt.lib\r
52 endif\r
53 \r
54 ifeq ($(MAKECMDGOALS),libdbg)\r
55   CFLAGS  = $(CBASE) $(CFDBG) /MTd\r
56   LFLAGS  = $(LFBASE) $(LFDBG)\r
57   CLIB    = libcmtd.lib\r
58 endif\r
59 \r
60 ifeq ($(MAKECMDGOALS),dllrel)\r
61   CFLAGS  = $(CBASE) $(CFREL) /MD\r
62   LFLAGS  = $(LFBASE) $(LFREL)\r
63   CLIB    = msvcrt.lib\r
64 endif\r
65 \r
66 ifeq ($(MAKECMDGOALS),dlldbg)\r
67   CFLAGS  = $(CBASE) $(CFDBG) /MDd\r
68   LFLAGS  = $(LFBASE) $(LFDBG)\r
69   CLIB    = msvcrtd.lib\r
70 endif\r
71 \r
72 ##### search paths #####\r
73 vpath %.c $(patsubst %,$(SRCDIR)/%;,$(SRCDIRS))\r
74 \r
75 ##### implicit rules #####\r
76 $(OBJDIR)/%.obj : %.c\r
77         $(CC) $(CFLAGS) "/Fo$@" $<\r
78 \r
79 ##### explicit rules #####\r
80 $(LIB_BINARY) : $(OBJECTS)\r
81         $(AR) $(AFLAGS) $(OBJECTS) /out:$(LIB_BINARY)\r
82 \r
83 $(DLL_BINARY) : $(OBJECTS)\r
84         $(LD) $(LFLAGS) $(CLIB) $(SYSLIBS) $(OBJECTS) /out:$(DLL_BINARY)\r
85 \r
86 ##### phony #####\r
87 .PHONY : clean librel libdbg dllrel dlldbg\r
88 \r
89 clean : \r
90         @erase /Q $(BINDIR)\$(BINNAME).* $(OBJDIR)\*.obj $(QUIETLY)\r
91 \r
92 librel : $(LIB_BINARY)\r
93 libdbg : $(LIB_BINARY)\r
94 \r
95 dllrel : $(DLL_BINARY)\r
96 dlldbg : $(DLL_BINARY)\r
97 \r