]> pd.if.org Git - liblfds/blob - liblfds/liblfds7.0.0/liblfds700/build/sdk_for_windows_7_and_gnumake/makefile
Initial import (all versions, including the new 7.1.0)
[liblfds] / liblfds / liblfds7.0.0 / liblfds700 / build / sdk_for_windows_7_and_gnumake / makefile
1 ##### paths #####
2 BINDIR := ..\..\bin
3 INCDIR := ..\..\inc
4 OBJDIR := ..\..\obj
5 SRCDIR := ..\..\src
6
7 ##### misc #####
8 QUIETLY := 1>nul 2>nul
9 NULL := 
10 SPACE := $(NULL) # TRD : with a trailing space
11
12 ##### sources, objects and libraries #####
13 BINNAME := liblfds700
14 LIB_BINARY := $(BINDIR)\$(BINNAME).lib
15 DLL_BINARY := $(BINDIR)\$(BINNAME).dll
16 SRCDIRS := lfds700_btree_addonly_unbalanced lfds700_freelist lfds700_hash_addonly lfds700_list_addonly_ordered_singlylinked lfds700_list_addonly_singlylinked_unordered lfds700_misc lfds700_queue lfds700_queue_bounded_singleconsumer_singleproducer lfds700_ringbuffer lfds700_stack
17 SOURCES := lfds700_hash_addonly_cleanup.c lfds700_hash_addonly_get.c lfds700_hash_addonly_init.c lfds700_hash_addonly_insert.c lfds700_hash_addonly_iterate.c lfds700_hash_addonly_query.c \
18            lfds700_list_addonly_ordered_singlylinked_cleanup.c lfds700_list_addonly_ordered_singlylinked_get.c lfds700_list_addonly_ordered_singlylinked_init.c lfds700_list_addonly_ordered_singlylinked_insert.c lfds700_list_addonly_ordered_singlylinked_query.c \
19            lfds700_list_addonly_singlylinked_unordered_cleanup.c lfds700_list_addonly_singlylinked_unordered_get.c lfds700_list_addonly_singlylinked_unordered_init.c lfds700_list_addonly_singlylinked_unordered_insert.c lfds700_list_addonly_singlylinked_unordered_query.c \
20            lfds700_btree_addonly_unbalanced_cleanup.c lfds700_btree_addonly_unbalanced_get.c lfds700_btree_addonly_unbalanced_init.c lfds700_btree_addonly_unbalanced_insert.c lfds700_btree_addonly_unbalanced_query.c \
21            lfds700_freelist_cleanup.c lfds700_freelist_init.c lfds700_freelist_pop.c lfds700_freelist_push.c lfds700_freelist_query.c \
22            lfds700_misc_cleanup.c lfds700_misc_globals.c lfds700_misc_init.c lfds700_misc_prng.c lfds700_misc_query.c \
23            lfds700_queue_cleanup.c lfds700_queue_dequeue.c lfds700_queue_enqueue.c lfds700_queue_init.c lfds700_queue_query.c \
24            lfds700_queue_bounded_singleconsumer_singleproducer_cleanup.c lfds700_queue_bounded_singleconsumer_singleproducer_dequeue.c lfds700_queue_bounded_singleconsumer_singleproducer_enqueue.c lfds700_queue_bounded_singleconsumer_singleproducer_init.c lfds700_queue_bounded_singleconsumer_singleproducer_query.c \
25            lfds700_ringbuffer_cleanup.c lfds700_ringbuffer_init.c lfds700_ringbuffer_query.c lfds700_ringbuffer_read.c lfds700_ringbuffer_write.c \
26            lfds700_stack_cleanup.c lfds700_stack_init.c lfds700_stack_pop.c lfds700_stack_push.c lfds700_stack_query.c
27 OBJECTS := $(patsubst %.c,$(OBJDIR)/%.obj,$(notdir $(SOURCES)))
28 SYSLIBS := kernel32.lib
29
30 ##### default paths fix up #####
31 INCDIRS := $(patsubst %,%;,$(INCDIR))
32 INCLUDE += $(subst $(SPACE),,$(INCDIRS))
33
34 ##### tools #####
35 MAKE    := make
36 MFLAGS  := 
37
38 CC      := cl
39 CBASE   := /c "-I$(SRCDIR)" "/Fd$(BINDIR)\$(BINNAME).pdb" /D_CRT_SECURE_NO_WARNINGS /DWIN32_LEAN_AND_MEAN /DUNICODE /D_UNICODE /DUNICODE /nologo /W4 /wd 4068 /WX
40 CFREL   := /DNDEBUG /Ox
41 CFDBG   := /D_DEBUG /Gm /Od /Zi
42
43 AR      := lib
44 AFLAGS  := /nologo /subsystem:console /verbose /wx
45
46 LD      := link
47 LFBASE  := /def:$(BINNAME).def /dll /nodefaultlib /nologo /nxcompat /subsystem:console /wx
48 LFREL   := /incremental:no
49 LFDBG   := /debug "/pdb:$(BINDIR)\$(BINNAME).pdb"
50
51 ##### variants #####
52 CFLAGS  := $(CBASE) $(CFDBG) /MTd
53 ASFLAGS := $(ASBASE) $(ASDBG)
54 LFLAGS  := $(LFBASE) $(LFDBG)
55 CLIB    := libcmtd.lib
56
57 ifeq ($(MAKECMDGOALS),librel)
58   CFLAGS  := $(CBASE) $(CFREL) /MT
59   ASFLAGS := $(ASBASE) $(ASREL)
60   LFLAGS  := $(LFBASE) $(LFREL)
61   CLIB    := libcmt.lib
62 endif
63
64 ifeq ($(MAKECMDGOALS),libdbg)
65   CFLAGS  := $(CBASE) $(CFDBG) /MTd
66   ASFLAGS := $(ASBASE) $(ASDBG)
67   LFLAGS  := $(LFBASE) $(LFDBG)
68   CLIB    := libcmtd.lib
69 endif
70
71 ifeq ($(MAKECMDGOALS),dllrel)
72   CFLAGS  := $(CBASE) $(CFREL) /MD
73   ASFLAGS := $(ASBASE) $(ASREL)
74   LFLAGS  := $(LFBASE) $(LFREL)
75   CLIB    := msvcrt.lib
76 endif
77
78 ifeq ($(MAKECMDGOALS),dlldbg)
79   CFLAGS  := $(CBASE) $(CFDBG) /MDd
80   ASFLAGS := $(ASBASE) $(ASDBG)
81   LFLAGS  := $(LFBASE) $(LFDBG)
82   CLIB    := msvcrtd.lib
83 endif
84
85 ##### search paths #####
86 vpath %.c $(patsubst %,$(SRCDIR)/%;,$(SRCDIRS))
87
88 ##### implicit rules #####
89 $(OBJDIR)/%.obj : %.c
90         $(CC) $(CFLAGS) "/Fo$@" $<
91
92 ##### explicit rules #####
93 $(LIB_BINARY) : $(OBJECTS)
94         $(AR) $(AFLAGS) $(OBJECTS) /out:$(LIB_BINARY)
95
96 $(DLL_BINARY) : $(OBJECTS)
97         $(LD) $(LFLAGS) $(CLIB) $(SYSLIBS) $(OBJECTS) /out:$(DLL_BINARY)
98
99 ##### phony #####
100 .PHONY : clean librel libdbg dllrel dlldbg
101
102 clean : 
103         @erase /Q $(BINDIR)\$(BINNAME).* $(OBJDIR)\*.obj $(QUIETLY)
104
105 dlldbg : $(DLL_BINARY)
106 dllrel : $(DLL_BINARY)
107
108 libdbg : $(LIB_BINARY)
109 librel : $(LIB_BINARY)
110
111 ##### notes #####
112 # /wd 4068 : turn off "unknown pragma" warning
113
114