]> pd.if.org Git - liblfds/blob - liblfds/liblfds7.1.0/liblfds710/build/msvc_gnumake/makefile
Initial import (all versions, including the new 7.1.0)
[liblfds] / liblfds / liblfds7.1.0 / liblfds710 / build / msvc_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    := liblfds710
14 LIB_BINARY := $(BINDIR)\$(BINNAME).lib
15 DLL_BINARY := $(BINDIR)\$(BINNAME).dll
16 SRCDIRS    := lfds710_btree_addonly_unbalanced lfds710_freelist lfds710_hash_addonly lfds710_list_addonly_singlylinked_ordered lfds710_list_addonly_singlylinked_unordered lfds710_misc lfds710_prng lfds710_queue_bounded_manyproducer_manyconsumer lfds710_queue_bounded_singleproducer_singleconsumer lfds710_queue_unbounded_manyproducer_manyconsumer lfds710_ringbuffer lfds710_stack
17 SOURCES    := lfds710_hash_addonly_cleanup.c lfds710_hash_addonly_get.c lfds710_hash_addonly_init.c lfds710_hash_addonly_insert.c lfds710_hash_addonly_iterate.c lfds710_hash_addonly_query.c \
18               lfds710_list_addonly_singlylinked_ordered_cleanup.c lfds710_list_addonly_singlylinked_ordered_get.c lfds710_list_addonly_singlylinked_ordered_init.c lfds710_list_addonly_singlylinked_ordered_insert.c lfds710_list_addonly_singlylinked_ordered_query.c \
19               lfds710_list_addonly_singlylinked_unordered_cleanup.c lfds710_list_addonly_singlylinked_unordered_get.c lfds710_list_addonly_singlylinked_unordered_init.c lfds710_list_addonly_singlylinked_unordered_insert.c lfds710_list_addonly_singlylinked_unordered_query.c \
20               lfds710_btree_addonly_unbalanced_cleanup.c lfds710_btree_addonly_unbalanced_get.c lfds710_btree_addonly_unbalanced_init.c lfds710_btree_addonly_unbalanced_insert.c lfds710_btree_addonly_unbalanced_query.c \
21               lfds710_freelist_cleanup.c lfds710_freelist_init.c lfds710_freelist_pop.c lfds710_freelist_push.c lfds710_freelist_query.c \
22               lfds710_misc_internal_backoff_init.c lfds710_misc_globals.c lfds710_misc_query.c \
23               lfds710_prng_init.c \
24               lfds710_queue_bounded_manyproducer_manyconsumer_cleanup.c lfds710_queue_bounded_manyproducer_manyconsumer_dequeue.c lfds710_queue_bounded_manyproducer_manyconsumer_enqueue.c lfds710_queue_bounded_manyproducer_manyconsumer_init.c lfds710_queue_bounded_manyproducer_manyconsumer_query.c \
25               lfds710_queue_bounded_singleproducer_singleconsumer_cleanup.c lfds710_queue_bounded_singleproducer_singleconsumer_dequeue.c lfds710_queue_bounded_singleproducer_singleconsumer_enqueue.c lfds710_queue_bounded_singleproducer_singleconsumer_init.c lfds710_queue_bounded_singleproducer_singleconsumer_query.c \
26               lfds710_queue_unbounded_manyproducer_manyconsumer_cleanup.c lfds710_queue_unbounded_manyproducer_manyconsumer_dequeue.c lfds710_queue_unbounded_manyproducer_manyconsumer_enqueue.c lfds710_queue_unbounded_manyproducer_manyconsumer_init.c lfds710_queue_unbounded_manyproducer_manyconsumer_query.c \
27               lfds710_ringbuffer_cleanup.c lfds710_ringbuffer_init.c lfds710_ringbuffer_query.c lfds710_ringbuffer_read.c lfds710_ringbuffer_write.c \
28               lfds710_stack_cleanup.c lfds710_stack_init.c lfds710_stack_pop.c lfds710_stack_push.c lfds710_stack_query.c
29 OBJECTS    := $(patsubst %.c,$(OBJDIR)/%.obj,$(notdir $(SOURCES)))
30 SYSLIBS    := kernel32.lib
31
32 ##### default paths fix up #####
33 INCDIRS := $(patsubst %,%;,$(INCDIR))
34 INCLUDE += $(subst $(SPACE),,$(INCDIRS))
35
36 ##### tools #####
37 CC                    := cl
38 CFLAGS_MANDATORY      := /c "/Fd$(BINDIR)\$(BINNAME).pdb" /wd 4068
39 CFLAGS_OPTIONAL       := /DWIN32_LEAN_AND_MEAN /DUNICODE /D_UNICODE /nologo /W4 /WX
40 CFLAGS_MANDATORY_DBG  := /Od /Gm /Zi /D_DEBUG
41 CFLAGS_MANDATORY_REL  := /Ox /DNDEBUG
42
43 AR                    := lib
44 ARFLAGS               :=
45 ARFLAGS_MANDATORY     := /subsystem:console
46 ARFLAGS_OPTIONAL      := /nologo /wx /verbose
47
48 LD                    := link
49 LDFLAGS_MANDATORY     := /def:$(BINNAME).def /dll /nodefaultlib /subsystem:console
50 LDFLAGS_OPTIONAL      := /nologo /nxcompat /wx
51 LDFLAGS_MANDATORY_DBG := /debug "/pdb:$(BINDIR)\$(BINNAME).pdb"
52 LDFLAGS_MANDATORY_REL := /incremental:no
53
54 ##### variants #####
55 ifeq ($(MAKECMDGOALS),) # TRD : default to debug lib
56   CFLAGS_MANDATORY  += $(CFLAGS_MANDATORY_DBG)
57   LDFLAGS_MANDATORY += $(LDFLAGS_MANDATORY_DBG)
58   CLIB              := libcmtd.lib
59 endif
60
61 ifeq ($(MAKECMDGOALS),libdbg)
62   CFLAGS_MANDATORY  += $(CFLAGS_MANDATORY_DBG)
63   LDFLAGS_MANDATORY += $(LDFLAGS_MANDATORY_DBG)
64   CLIB              := libcmtd.lib
65 endif
66
67 ifeq ($(MAKECMDGOALS),librel)
68   CFLAGS_MANDATORY  += $(CFLAGS_MANDATORY_REL)
69   LDFLAGS_MANDATORY += $(LDFLAGS_MANDATORY_REL)
70   CLIB              := libcmt.lib
71 endif
72
73 ifeq ($(MAKECMDGOALS),dlldbg)
74   CFLAGS_MANDATORY  += $(CFLAGS_MANDATORY_DBG)
75   LDFLAGS_MANDATORY += $(LDFLAGS_MANDATORY_DBG)
76   CLIB              := msvcrtd.lib
77 endif
78
79 ifeq ($(MAKECMDGOALS),dllrel)
80   CFLAGS_MANDATORY  += $(CFLAGS_MANDATORY_REL)
81   LDFLAGS_MANDATORY += $(LDFLAGS_MANDATORY_REL)
82   CLIB              := msvcrt.lib
83 endif
84
85 ##### search paths #####
86 vpath %.c $(patsubst %,$(SRCDIR)/%;,$(SRCDIRS))
87
88 ##### implicit rules #####
89 $(OBJDIR)/%.obj : %.c
90         $(CC) $(CFLAGS_OPTIONAL) $(CFLAGS) $(CFLAGS_MANDATORY) "/Fo$@" $<
91
92 ##### explicit rules #####
93 $(LIB_BINARY) : $(OBJECTS)
94         $(AR) $(ARFLAGS_OPTIONAL) $(ARFLAGS) $(ARFLAGS_MANDATORY) $(OBJECTS) /out:$(LIB_BINARY)
95
96 $(DLL_BINARY) : $(OBJECTS)
97         $(LD) $(LDFLAGS_OPTIONAL) $(LDFLAGS) $(LDFLAGS_MANDATORY) $(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 dllrel : $(DLL_BINARY)
106 dlldbg : $(DLL_BINARY)
107
108 librel : $(LIB_BINARY)
109 libdbg : $(LIB_BINARY)
110
111 ##### notes #####
112 # /wd 4068 : turn off "unknown pragma" warning
113