]> pd.if.org Git - liblfds/blob - liblfds/liblfds6.0.1/liblfds601/makefile.windows
Initial import (all versions, including the new 7.1.0)
[liblfds] / liblfds / liblfds6.0.1 / liblfds601 / 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 = liblfds601\r
12 LIB_BINARY = $(BINDIR)\$(BINNAME).lib\r
13 DLL_BINARY = $(BINDIR)\$(BINNAME).dll\r
14 SRCDIRS = lfds601_abstraction lfds601_freelist lfds601_queue lfds601_ringbuffer lfds601_slist lfds601_stack\r
15 SOURCES = lfds601_abstraction_aligned_free.c lfds601_abstraction_aligned_malloc.c lfds601_abstraction_cas.c lfds601_abstraction_dcas.c lfds601_abstraction_increment.c \\r
16           lfds601_freelist_delete.c lfds601_freelist_get_and_set.c lfds601_freelist_new.c lfds601_freelist_query.c lfds601_freelist_pop_push.c \\r
17           lfds601_queue_delete.c lfds601_queue_new.c lfds601_queue_query.c lfds601_queue_queue.c \\r
18           lfds601_ringbuffer_delete.c lfds601_ringbuffer_get_and_put.c lfds601_ringbuffer_new.c lfds601_ringbuffer_query.c \\r
19           lfds601_slist_delete.c lfds601_slist_get_and_set.c lfds601_slist_link.c lfds601_slist_new.c \\r
20           lfds601_stack_delete.c lfds601_stack_new.c lfds601_stack_push_pop.c lfds601_stack_query.c\r
21 OBJECTS = $(patsubst %.c,$(OBJDIR)/%.obj,$(notdir $(SOURCES)))\r
22 \r
23 ##### tools #####\r
24 MAKE    = make\r
25 MFLAGS  = \r
26 \r
27 CC      = cl\r
28 CBASE   = /nologo /W4 /WX /c "-I$(SRCDIR)" "-I$(INCDIR)" "/Fd$(BINDIR)\$(BINNAME).pdb" /DUNICODE /D_UNICODE /DWIN32_LEAN_AND_MEAN\r
29 CFREL   = /Ox /DNDEBUG\r
30 CFDBG   = /Od /Gm /Zi /D_DEBUG\r
31 \r
32 AR      = lib\r
33 AFLAGS  = /nologo /subsystem:console /wx /verbose\r
34 \r
35 LD      = link\r
36 LFBASE  = /dll /def:$(BINNAME).def /nologo /subsystem:console /wx /nodefaultlib /nxcompat\r
37 LFREL   = /incremental:no\r
38 LFDBG   = /debug "/pdb:$(BINDIR)\$(BINNAME).pdb"\r
39 \r
40 ##### variants #####\r
41 CFLAGS  = $(CBASE) $(CFDBG) /MTd\r
42 LFLAGS  = $(LFBASE) $(LFDBG)\r
43 CLIB    = libcmtd.lib\r
44 \r
45 ifeq ($(MAKECMDGOALS),librel)\r
46   CFLAGS  = $(CBASE) $(CFREL) /MT\r
47   LFLAGS  = $(LFBASE) $(LFREL)\r
48   CLIB    = libcmt.lib\r
49 endif\r
50 \r
51 ifeq ($(MAKECMDGOALS),libdbg)\r
52   CFLAGS  = $(CBASE) $(CFDBG) /MTd\r
53   LFLAGS  = $(LFBASE) $(LFDBG)\r
54   CLIB    = libcmtd.lib\r
55 endif\r
56 \r
57 ifeq ($(MAKECMDGOALS),dllrel)\r
58   CFLAGS  = $(CBASE) $(CFREL) /MD\r
59   LFLAGS  = $(LFBASE) $(LFREL)\r
60   CLIB    = msvcrt.lib\r
61 endif\r
62 \r
63 ifeq ($(MAKECMDGOALS),dlldbg)\r
64   CFLAGS  = $(CBASE) $(CFDBG) /MDd\r
65   LFLAGS  = $(LFBASE) $(LFDBG)\r
66   CLIB    = msvcrtd.lib\r
67 endif\r
68 \r
69 ##### search paths #####\r
70 vpath %.c $(patsubst %,$(SRCDIR)/%;,$(SRCDIRS))\r
71 \r
72 ##### implicit rules #####\r
73 $(OBJDIR)/%.obj : %.c\r
74         $(CC) $(CFLAGS) "/Fo$@" $<\r
75 \r
76 ##### explicit rules #####\r
77 $(LIB_BINARY) : $(OBJECTS)\r
78         $(AR) $(AFLAGS) $(OBJECTS) /out:$(LIB_BINARY)\r
79 \r
80 $(DLL_BINARY) : $(OBJECTS)\r
81         $(LD) $(LFLAGS) $(CLIB) $(OBJECTS) /out:$(DLL_BINARY)\r
82 \r
83 ##### phony #####\r
84 .PHONY : clean librel libdbg dllrel dlldbg\r
85 \r
86 clean : \r
87         @erase /Q $(BINDIR)\$(BINNAME).* $(OBJDIR)\*.obj $(QUIETLY)\r
88 \r
89 librel : $(LIB_BINARY)\r
90 libdbg : $(LIB_BINARY)\r
91 \r
92 dllrel : $(DLL_BINARY)\r
93 dlldbg : $(DLL_BINARY)\r
94 \r