9 SPACE := $(NULL) # TRD : necessary trailing space after the close bracket
11 ##### sources, objects and libraries #####
13 BINARY := $(BINDIR)/$(BINNAME).exe
15 SOURCES := main.c misc.c callbacks.c util_cmdline.c
16 OBJECTS := $(patsubst %.c,$(OBJDIR)/%.obj,$(notdir $(SOURCES)))
17 SYSLIBS := kernel32.lib
19 USRLIBS := ../../../../liblfds710/bin/liblfds710.lib ../../../../test_and_benchmark/libshared/bin/libshared.lib ../../../../test_and_benchmark/libtest/bin/libtest.lib
21 ##### default paths fix up #####
22 INCLUDE += ;../../../../liblfds710/inc/;../../../../test_and_benchmark/libshared/inc/;../../../../test_and_benchmark/libtest/inc/;
23 LIB += ;../../../../liblfds710/bin/;../../../../test_and_benchmark/libshared/inc/;../../../../test_and_benchmark/libtest/inc/;
28 CFLAGS_OPTIONAL := /nologo /W4 /WX /c "/Fd$(BINDIR)\$(BINNAME).pdb" /DUNICODE /D_UNICODE /D_CRT_SECURE_NO_DEPRECATE /DWIN32_LEAN_AND_MEAN
29 CFLAGS_MANDATORY_DBG := /Od /Gm /Zi /D_DEBUG
30 CFLAGS_MANDATORY_REL := /Ox /DNDEBUG
33 LDFLAGS_MANDATORY := /nodefaultlib /subsystem:console
34 LDFLAGS_OPTIONAL := /nologo /nxcompat /wx
35 LDFLAGS_MANDATORY_DBG := /debug "/pdb:$(BINDIR)\$(BINNAME).pdb"
36 LDFLAGS_MANDATORY_REL := /incremental:no
38 ##### build variants #####
39 ifeq ($(MAKECMDGOALS),) # TRD : default to lib debug
40 CFLAGS_MANDATORY += $(CFLAGS_MANDATORY_DBG) /MTd
41 LDFLAGS_MANDATORY += $(LDFLAGS_MANDATORY_DBG)
45 ifeq ($(MAKECMDGOALS),libdbg)
46 CFLAGS_MANDATORY += $(CFLAGS_MANDATORY_DBG) /MTd
47 LDFLAGS_MANDATORY += $(LDFLAGS_MANDATORY_DBG)
51 ifeq ($(MAKECMDGOALS),librel)
52 CFLAGS_MANDATORY += $(CFLAGS_MANDATORY_REL) /MT
53 LDFLAGS_MANDATORY += $(LDFLAGS_MANDATORY_REL)
57 ifeq ($(MAKECMDGOALS),dlldbg)
58 CFLAGS_MANDATORY += $(CFLAGS_MANDATORY_DBG) /MDd
59 LDFLAGS_MANDATORY += $(LDFLAGS_MANDATORY_DBG)
63 ifeq ($(MAKECMDGOALS),dllrel)
64 CFLAGS_MANDATORY += $(CFLAGS_MANDATORY_REL) /MD
65 LDFLAGS_MANDATORY += $(LDFLAGS_MANDATORY_REL)
69 ##### search paths #####
70 vpath %.c $(patsubst %,$(SRCDIR)/%:,$(SRCDIRS))
72 ##### implicit rules #####
74 $(CC) $(CFLAGS_OPTIONAL) $(CFLAGS) $(CFLAGS_MANDATORY) "/Fo$@" $<
76 ##### explicit rules #####
77 $(BINARY) : $(OBJECTS)
78 $(LD) $(LDFLAGS_OPTIONAL) $(LDFLAGS) $(LDFLAGS_MANDATORY) $(CLIB) $(SYSLIBS) $(EXTLIBS) $(USRLIBS) $(OBJECTS) /out:$(BINARY)
81 .PHONY : clean librel libdbg dllrel dlldbg
84 @erase /Q $(OBJDIR)\*.obj $(OBJDIR)\*.res $(BINDIR)\$(BINNAME).* $(QUIETLY)
91 ##### dependencies #####