10 SPACE := $(NULL) # TRD : with a trailing space
12 ##### sources, objects and libraries #####
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
30 ##### default paths fix up #####
31 INCDIRS := $(patsubst %,%;,$(INCDIR))
32 INCLUDE += $(subst $(SPACE),,$(INCDIRS))
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
41 CFDBG := /D_DEBUG /Gm /Od /Zi
44 AFLAGS := /nologo /subsystem:console /verbose /wx
47 LFBASE := /def:$(BINNAME).def /dll /nodefaultlib /nologo /nxcompat /subsystem:console /wx
48 LFREL := /incremental:no
49 LFDBG := /debug "/pdb:$(BINDIR)\$(BINNAME).pdb"
52 CFLAGS := $(CBASE) $(CFDBG) /MTd
53 ASFLAGS := $(ASBASE) $(ASDBG)
54 LFLAGS := $(LFBASE) $(LFDBG)
57 ifeq ($(MAKECMDGOALS),librel)
58 CFLAGS := $(CBASE) $(CFREL) /MT
59 ASFLAGS := $(ASBASE) $(ASREL)
60 LFLAGS := $(LFBASE) $(LFREL)
64 ifeq ($(MAKECMDGOALS),libdbg)
65 CFLAGS := $(CBASE) $(CFDBG) /MTd
66 ASFLAGS := $(ASBASE) $(ASDBG)
67 LFLAGS := $(LFBASE) $(LFDBG)
71 ifeq ($(MAKECMDGOALS),dllrel)
72 CFLAGS := $(CBASE) $(CFREL) /MD
73 ASFLAGS := $(ASBASE) $(ASREL)
74 LFLAGS := $(LFBASE) $(LFREL)
78 ifeq ($(MAKECMDGOALS),dlldbg)
79 CFLAGS := $(CBASE) $(CFDBG) /MDd
80 ASFLAGS := $(ASBASE) $(ASDBG)
81 LFLAGS := $(LFBASE) $(LFDBG)
85 ##### search paths #####
86 vpath %.c $(patsubst %,$(SRCDIR)/%;,$(SRCDIRS))
88 ##### implicit rules #####
90 $(CC) $(CFLAGS) "/Fo$@" $<
92 ##### explicit rules #####
93 $(LIB_BINARY) : $(OBJECTS)
94 $(AR) $(AFLAGS) $(OBJECTS) /out:$(LIB_BINARY)
96 $(DLL_BINARY) : $(OBJECTS)
97 $(LD) $(LFLAGS) $(CLIB) $(SYSLIBS) $(OBJECTS) /out:$(DLL_BINARY)
100 .PHONY : clean librel libdbg dllrel dlldbg
103 @erase /Q $(BINDIR)\$(BINNAME).* $(OBJDIR)\*.obj $(QUIETLY)
105 dlldbg : $(DLL_BINARY)
106 dllrel : $(DLL_BINARY)
108 libdbg : $(LIB_BINARY)
109 librel : $(LIB_BINARY)
112 # /wd 4068 : turn off "unknown pragma" warning