1#
2# makefile.vc - Main Tinyows makefile for MSVC++
3#
4# This  VC++ makefile will build TINYOWS.EXES.
5#
6# To use the makefile:
7#  - Open a DOS prompt window
8#  - Run the VCVARS32.BAT script to initialize the VC++ environment variables
9#  - Start the build with:  nmake /f makefile.vc
10#
11# $Id: $
12#
13TINYOWS_ROOT = .
14
15!INCLUDE nmake.opt
16
17BASE_CFLAGS = 	$(OPTFLAGS)
18
19CFLAGS=$(BASE_CFLAGS) $(TINY_CFLAGS)
20CC=     cl
21LINK=   link
22
23#
24# Main Tinyows library.
25#
26TINY_DLL = libtiny.dll
27
28TINY_OBJS = src\fe\fe_comparison_ops.obj src\fe\fe_error.obj src\fe\fe_filter.obj \
29            src\fe\fe_filter_capabilities.obj src\fe\fe_function.obj \
30            src\fe\fe_logical_ops.obj src\fe\fe_spatial_ops.obj \
31            src\mapfile\mapfile.obj \
32            src\ows\ows_bbox.obj src\ows\ows_libxml.obj src\ows\ows.obj src\ows\ows_config.obj \
33            src\ows\ows_error.obj src\ows\ows_geobbox.obj src\ows\ows_get_capabilities.obj \
34            src\ows\ows_layer.obj src\ows\ows_metadata.obj src\ows\ows_psql.obj \
35            src\ows\ows_request.obj src\ows\ows_srs.obj src\ows\ows_storage.obj  src\ows\ows_version.obj \
36            src\struct\alist.obj src\struct\array.obj src\struct\buffer.obj src\struct\cgi_request.obj \
37            src\struct\list.obj src\struct\mlist.obj src\struct\regexp.obj \
38            src\wfs\wfs_describe.obj src\wfs\wfs_error.obj src\wfs\wfs_get_capabilities.obj \
39            src\wfs\wfs_get_feature.obj src\wfs\wfs_request.obj src\wfs\wfs_transaction.obj \
40            $(REGEX_OBJ)
41
42
43TINY_HDRS = 	src\ows_api.h src\ows_define.h src\ows\ows.h
44
45TINY_EXE = 	tinyows.exe
46
47
48#
49#
50#
51default: 	all
52
53all:		$(TINY_LIB) $(TINY_EXE)
54
55$(TINY_OBJS):	$(TINY_HDRS)
56
57$(TINY_LIB):	ows_define.h $(TINY_OBJS)
58	lib /debug /out:$(TINY_LIB) $(TINY_OBJS)
59
60
61$(TINY_EXE): $(TINY_LIB)
62          $(CC) $(CFLAGS) src\ows\ows.c /Fetinyows.exe $(LIBS)
63	         if exist $@.manifest mt -manifest $@.manifest -outputresource:$@;1
64
65svn_update:
66        svn update
67
68.c.obj:
69	$(CC) $(CFLAGS) /c $*.c /Fo$*.obj
70
71.cpp.obj:
72	$(CC) $(CFLAGS) /c $*.cpp /Fo$*.obj
73
74ows_define.h:	src\ows_define.h.in
75	copy /y src\ows_define.h.in src\ows_define.h
76
77
78ms4w:   all
79        if EXIST builds rd /s /q builds
80
81        mkdir builds
82        cd builds
83
84        svn export http://www.tinyows.org/svn/tinyows/ms4w
85
86        cd ms4w\apps\tinyows-svn
87        svn export http://www.tinyows.org/svn/tinyows/schema
88        svn export http://www.tinyows.org/svn/tinyows/demo
89
90        cd ..\..\..\..
91
92        copy /y tinyows.exe builds\ms4w\Apache\cgi-bin\
93
94        cd builds
95
96        zip -r -q -9 tinyows_ms4w-svn.zip ms4w
97
98clean:
99    del *.obj
100    del $(TINY_EXE)
101    del *.lib
102    del *.manifest
103    del src\fe\*.obj
104    del src\ows\*.obj
105    del src\struct\*.obj
106    del src\wfs\*.obj
107
108
109install: $(TINY_EXE)
110	-mkdir $(BINDIR)
111	copy *.exe $(BINDIR)
112
113
114
115