]> pd.if.org Git - liblfds/blob - liblfds/liblfds7.1.0/test_and_benchmark/test/build/msvc_gnumake/makefile
Initial import (all versions, including the new 7.1.0)
[liblfds] / liblfds / liblfds7.1.0 / test_and_benchmark / test / build / msvc_gnumake / makefile
1 ##### paths #####
2 BINDIR := ..\..\bin
3 OBJDIR := ..\..\obj
4 SRCDIR := ..\..\src
5
6 ##### misc #####
7 QUIETLY := 1>nul 2>nul
8 NULL    := 
9 SPACE   := $(NULL) # TRD : necessary trailing space after the close bracket
10
11 ##### sources, objects and libraries #####
12 BINNAME := test
13 BINARY  := $(BINDIR)/$(BINNAME).exe
14 SRCDIRS := .
15 SOURCES := main.c misc.c callbacks.c util_cmdline.c
16 OBJECTS := $(patsubst %.c,$(OBJDIR)/%.obj,$(notdir $(SOURCES)))
17 SYSLIBS := kernel32.lib
18 EXTLIBS := 
19 USRLIBS := ../../../../liblfds710/bin/liblfds710.lib ../../../../test_and_benchmark/libshared/bin/libshared.lib ../../../../test_and_benchmark/libtest/bin/libtest.lib
20
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/;
24
25 ##### tools #####
26 CC                     := cl
27 CFLAGS_MANDATORY       := 
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
31
32 LD                     := link
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
37
38 ##### build variants #####
39 ifeq ($(MAKECMDGOALS),) # TRD : default to lib debug
40   CFLAGS_MANDATORY  += $(CFLAGS_MANDATORY_DBG) /MTd
41   LDFLAGS_MANDATORY += $(LDFLAGS_MANDATORY_DBG)
42   CLIB              := libcmtd.lib
43 endif
44
45 ifeq ($(MAKECMDGOALS),libdbg)
46   CFLAGS_MANDATORY  += $(CFLAGS_MANDATORY_DBG) /MTd
47   LDFLAGS_MANDATORY += $(LDFLAGS_MANDATORY_DBG)
48   CLIB              := libcmtd.lib
49 endif
50
51 ifeq ($(MAKECMDGOALS),librel)
52   CFLAGS_MANDATORY  += $(CFLAGS_MANDATORY_REL) /MT
53   LDFLAGS_MANDATORY += $(LDFLAGS_MANDATORY_REL)
54   CLIB              := libcmt.lib
55 endif
56
57 ifeq ($(MAKECMDGOALS),dlldbg)
58   CFLAGS_MANDATORY  += $(CFLAGS_MANDATORY_DBG) /MDd
59   LDFLAGS_MANDATORY += $(LDFLAGS_MANDATORY_DBG)
60   CLIB              := msvcrtd.lib
61 endif
62
63 ifeq ($(MAKECMDGOALS),dllrel)
64   CFLAGS_MANDATORY  += $(CFLAGS_MANDATORY_REL) /MD
65   LDFLAGS_MANDATORY += $(LDFLAGS_MANDATORY_REL)
66   CLIB              := msvcrt.lib
67 endif
68
69 ##### search paths #####
70 vpath %.c $(patsubst %,$(SRCDIR)/%:,$(SRCDIRS))
71
72 ##### implicit rules #####
73 $(OBJDIR)/%.obj : %.c
74         $(CC) $(CFLAGS_OPTIONAL) $(CFLAGS) $(CFLAGS_MANDATORY) "/Fo$@" $<
75
76 ##### explicit rules #####
77 $(BINARY) : $(OBJECTS)
78         $(LD) $(LDFLAGS_OPTIONAL) $(LDFLAGS) $(LDFLAGS_MANDATORY) $(CLIB) $(SYSLIBS) $(EXTLIBS) $(USRLIBS) $(OBJECTS) /out:$(BINARY)
79
80 ##### phony #####
81 .PHONY : clean librel libdbg dllrel dlldbg
82
83 clean : 
84         @erase /Q $(OBJDIR)\*.obj $(OBJDIR)\*.res $(BINDIR)\$(BINNAME).* $(QUIETLY)
85
86 dlldbg : $(BINARY)
87 dllrel : $(BINARY)
88 libdbg : $(BINARY)
89 librel : $(BINARY)
90
91 ##### dependencies #####
92 -include $(DEPENDS)
93