File: Makefile.msvc

package info (click to toggle)
openctm 1.0.3%2Bdfsg1-3
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 1,704 kB
  • sloc: ansic: 9,241; cpp: 5,199; python: 735; makefile: 29
file content (119 lines) | stat: -rw-r--r-- 5,103 bytes parent folder | download | duplicates (4)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
###############################################################################
# Product:     OpenCTM tools
# File:        Makefile.msvc
# Description: Makefile for the OpenCTM tools, MS Visual Studio version
###############################################################################
# Copyright (c) 2009-2010 Marcus Geelnard
#
# This software is provided 'as-is', without any express or implied
# warranty. In no event will the authors be held liable for any damages
# arising from the use of this software.
#
# Permission is granted to anyone to use this software for any purpose,
# including commercial applications, and to alter it and redistribute it
# freely, subject to the following restrictions:
#
#     1. The origin of this software must not be misrepresented; you must not
#     claim that you wrote the original software. If you use this software
#     in a product, an acknowledgment in the product documentation would be
#     appreciated but is not required.
#
#     2. Altered source versions must be plainly marked as such, and must not
#     be misrepresented as being the original software.
#
#     3. This notice may not be removed or altered from any source
#     distribution.
###############################################################################

OPENCTMDIR = ..\lib
GLEWDIR = glew
JPEGDIR = jpeg
RPLYDIR = rply
TINYXMLDIR = tinyxml
ZLIBDIR = zlib
PNGLITEDIR = pnglite

CPP = cl
CPPFLAGS = /nologo /c /Ox /W3 /EHsc /I$(OPENCTMDIR) /I$(RPLYDIR) /I$(JPEGDIR) /I$(TINYXMLDIR) /I$(GLEWDIR) /I$(ZLIBDIR) /I$(PNGLITEDIR) /DGLEW_STATIC /D_CRT_SECURE_NO_WARNINGS
RC = rc

MESHOBJS = mesh.obj meshio.obj ctm.obj ply.obj rply.obj stl.obj 3ds.obj dae.obj obj.obj lwo.obj off.obj wrl.obj
CTMCONVOBJS = ctmconv.obj common.obj systimer.obj convoptions.obj $(MESHOBJS) ctmconv.res
CTMVIEWEROBJS = ctmviewer.obj common.obj image.obj systimer.obj sysdialog_win.obj convoptions.obj glew.obj pnglite.obj $(MESHOBJS) ctmviewer.res
CTMBENCHOBJS = ctmbench.obj systimer.obj

all: ctmconv.exe ctmviewer.exe ctmbench.exe

clean:
	del /Q ctmconv.exe ctmviewer.exe ctmbench.exe $(CTMCONVOBJS) $(CTMVIEWEROBJS) $(CTMBENCHOBJS) bin2c.exe phong_frag.h phong_vert.h
	cd $(JPEGDIR) && $(MAKE) /fmakefile.vc cleanlib
	cd $(TINYXMLDIR) && $(MAKE) /fMakefile.msvc clean
	cd $(ZLIBDIR) && $(MAKE) /fMakefile.msvc clean

openctm.dll: $(OPENCTMDIR)\openctm.dll
	copy $(OPENCTMDIR)\openctm.dll openctm.dll

ctmconv.exe: $(CTMCONVOBJS) $(TINYXMLDIR)\tinyxml.lib openctm.dll
	$(CPP) /nologo /Fe$@ $(CTMCONVOBJS) /link /LIBPATH:$(OPENCTMDIR) /LIBPATH:$(TINYXMLDIR) openctm.lib tinyxml.lib

ctmviewer.exe: $(CTMVIEWEROBJS) $(JPEGDIR)\libjpeg.lib $(TINYXMLDIR)\tinyxml.lib $(ZLIBDIR)\libz.lib openctm.dll
	$(CPP) /nologo /Fe$@ $(CTMVIEWEROBJS) /link /subsystem:windows /entry:mainCRTStartup /LIBPATH:$(OPENCTMDIR) /LIBPATH:$(TINYXMLDIR) /LIBPATH:$(JPEGDIR) /LIBPATH:$(ZLIBDIR) openctm.lib tinyxml.lib glut.lib libjpeg.lib libz.lib opengl32.lib glu32.lib

ctmbench.exe: $(CTMBENCHOBJS) openctm.dll
	$(CPP) /nologo /Fe$@ $(CTMBENCHOBJS) /link /LIBPATH:$(OPENCTMDIR) openctm.lib

.cpp.obj:
	$(CPP) $(CPPFLAGS) /Fo$@ $<

ctmconv.obj: ctmconv.cpp systimer.h convoptions.h mesh.h meshio.h
ctmviewer.obj: ctmviewer.cpp common.h image.h systimer.h sysdialog.h mesh.h meshio.h phong_vert.h phong_frag.h icons\icon_open.h icons\icon_save.h icons\icon_help.h
ctmbench.obj: ctmbench.cpp systimer.h
common.obj: common.cpp common.h
image.obj: image.cpp image.h common.h $(JPEGDIR)\libjpeg.lib
systimer.obj: systimer.cpp systimer.h
sysdialog_win.obj: sysdialog_win.cpp sysdialog.h
convoptions.obj: convoptions.cpp convoptions.h
mesh.obj: mesh.cpp mesh.h convoptions.h
meshio.obj: meshio.cpp common.h convoptions.h mesh.h ctm.h ply.h stl.h 3ds.h dae.h obj.h lwo.h off.h wrl.h
ctm.obj: ctm.cpp ctm.h mesh.h convoptions.h
ply.obj: ply.cpp ply.h mesh.h convoptions.h common.h
stl.obj: stl.cpp stl.h mesh.h convoptions.h
3ds.obj: 3ds.cpp 3ds.h mesh.h convoptions.h
dae.obj: dae.cpp dae.h mesh.h convoptions.h
obj.obj: obj.cpp obj.h mesh.h convoptions.h common.h
lwo.obj: lwo.cpp lwo.h mesh.h convoptions.h
off.obj: off.cpp off.h mesh.h convoptions.h common.h
wrl.obj: wrl.cpp wrl.h mesh.h convoptions.h common.h

phong_vert.h: phong.vert bin2c.exe
	bin2c.exe phong.vert phongVertSrc > $@

phong_frag.h: phong.frag bin2c.exe
	bin2c.exe phong.frag phongFragSrc > $@

bin2c.exe: bin2c.cpp
	$(CPP) /nologo /Ox /W3 /EHsc /Fe$@ bin2c.cpp

ctmconv.res: ctmconv.rc icons\openctm.ico
	$(RC) ctmconv.rc

ctmviewer.res: ctmviewer.rc icons\openctm.ico
	$(RC) ctmviewer.rc

$(JPEGDIR)\libjpeg.lib: 
	cd $(JPEGDIR) && $(MAKE) /fmakefile.vc libjpeg.lib

$(ZLIBDIR)\libz.lib:
	cd $(ZLIBDIR) && $(MAKE) /fMakefile.msvc

glew.obj: $(GLEWDIR)\glew.c
	cl /nologo /c /Ox /W3 /I$(GLEWDIR) /DGLEW_STATIC /Fo$@ $(GLEWDIR)\glew.c

rply.obj: $(RPLYDIR)\rply.c
	cl /nologo /c /Ox /W3 /I$(RPLYDIR) /D_CRT_SECURE_NO_WARNINGS /Fo$@ $(RPLYDIR)\rply.c

pnglite.obj: $(PNGLITEDIR)\pnglite.c
	cl /nologo /c /Ox /W3 /I$(PNGLITEDIR) /D_CRT_SECURE_NO_WARNINGS /Fo$@ $(PNGLITEDIR)\pnglite.c

$(TINYXMLDIR)\tinyxml.lib:
	cd $(TINYXMLDIR) && $(MAKE) /fMakefile.msvc