1#
2# $Id: Makefile,v 1.28.2.2 2017/07/30 07:46:25 markisch Exp $
3#
4# GNUPLOT Makefile Microsoft Visual C++ 2005 or newer
5
6# John Bollinger bbands@yahoo.com, 4 March 2002:
7#   Added png support with zlib and libpng as subs of .\src
8#     libpng and zlib can be downloaded from ftp://ftp.uu.net/graphics/png
9#   Added pdf support with pdflib as a sub of .\src
10#     pdflib can be downloaded from http://www.pdflib.com
11#   Added MSC multi-thread support for compatibility with pdflib
12# Bastian Maerkisch bmaerkisch@web.de:
13#   Added support for binary version of the GD library (bgd.dll)
14#     gdlib can be downloaded from http://www.libgd.org/
15#     Development of libgd seems to have stalled:
16#     Latest binary build can be found at http://www.libgd.org/releases/gd-latest-win32.zip
17#     As of March 2011 this is version 2.0.34.
18#   Removed zlib and libpng again as they're already included in bgd.dll
19# Hans-Bernhard Broeker:
20#   updated to current version of MSVC
21#   undid silly name change for pgnuplot.exe, call console version gnuplot.exe instead
22#   removed remainder of wgnuplot_pipes.exe support
23#   isolated more configuration-dependent parts (gd, pdf, wx) to lines of their own,
24#     so they can be turned on/off more easily.
25# Bastian Maerkisch bmaerkisch@web.de:
26#   Out of tree version. Moved to config\msvc
27#   See ChangeLog for further changes.
28
29#
30# To compile with Visual C:
31#	Optionally download gdlib to config\msvc\gdwin32
32#	Optionally download pdflib to config\msvc\pdflib and compile it if you choose the source
33#
34#	Start the Microsoft Visual C++ command shell (e.g. via link installed setup)
35#	change to the gnuplot\config\msvc directory
36#   Edit the Makefile to match your setup. (If you don't have the optional libraries,
37#   you will probably have to disable some parts.)
38#	Now run:
39#	  nmake
40#
41
42# Compilation options, disable by setting to zero
43# Is libgd available? (required by terminal png/jpeg/gif)?
44GDLIB = 0
45# Is pdflib available? (required by terminal pdf)
46PDFLIB = 0
47# Build wxt terminal? (requires GTK, wxWidgets, cairo and pango libraries)
48# See http://wiki.wxwidgets.org/Microsoft_Visual_C%2B%2B_Guide
49#     http://wiki.wxwidgets.org/Visual_Studio_2008_%289.0%29
50WXT = 0
51# Build Cairo Terminals (cairolatex, epslatex, pdflatex)
52CAIRO = 0
53# Build qt terminal?
54QT = 0
55# Set to one if you have Qt5 (instead of Qt4)
56QT5 = 1
57# Build the lua/tikz terminal?
58LUA = 0
59# Build caca terminal? Requires libcaca
60# Requires libcaca version 0.99.beta15 or newer. A post-beta18
61# svn version is recommended since it contains an improved
62# win32 backend.
63CACA = 0
64
65# Create debug build?
66DEBUG = 0
67
68# Location of additional libraries
69#GDDIR = gdwin32
70#LUADIR = lua
71PDFDIR = pdflib
72#QTDIR = C:\Qt\4.8.4
73QTDIR = C:\Qt\5.8\msvc2015_64
74#CAIRODIR = cairo-pango
75#CACADIR = libcaca
76CAIRODIR = d:\msvc-libs
77LIBDIR =  d:\msvc-libs
78
79
80# installation directory
81DESTDIR = "$(PROGRAMFILES)\gnuplot"
82
83TOP = ..\..
84
85# directory for PostScript prolog and associated files
86GNUPLOT_PS_DIR = share\\PostScript
87
88# Similarly for javascript files for the canvas terminal:
89GNUPLOT_JS_DIR = share\\js
90
91# Similarly for scripts used by the lua terminal
92GNUPLOT_LUA_DIR = share\\lua
93
94# directory for Qt translation files
95GNUPLOT_QT_DIR = share\\qt
96
97# gnuplot will look for gnuplotrc here:
98GNUPLOT_SHARE_DIR = share
99
100#CC = cl
101LD = link
102
103# compiler flags
104# /I  means extra include directory
105# /Fm means produce link map
106# /Od means suppress optimizations (esp. for debug)
107# /O2 means optimize for speed
108# /Zi means prepare for codeview
109# /MD means include multi-thread support (DLL)
110# /GR means Enable Run-Time Type Information
111!IF "$(DEBUG)" == "1"
112CBASEFLAGS = /EHsc /GR /MDd /Od /nologo /Zi
113!ELSE
114CBASEFLAGS = /EHsc /GR /MD /O2 /nologo
115!ENDIF
116CFLAGS = $(CBASEFLAGS) /I. /I$(TOP) /I$(S) /I$(T) /D_Windows /DWIN32 /DHAVE_CONFIG_H /D__MSC__ $(OPTIONS)
117CFLAGS = $(CFLAGS) /DUNICODE /D_UNICODE
118CFLAGS = $(CFLAGS) /DGNUPLOT_SHARE_DIR=\"$(GNUPLOT_SHARE_DIR)\"
119WIN_CFLAGS =
120CONSOLE_CFLAGS = /DWGP_CONSOLE
121OPTIONS = /DUSE_MOUSE /DPIPES
122OPTIONS = $(OPTIONS) /DGNUPLOT_HISTORY
123
124EXTRA_TARGETS =
125
126VERSION_CPPFLAGS = -DVERSION_MAJOR=\"5.2\" -DPATCHLEVEL=\"0\"
127
128# flags for terminals
129# see other terminal defines in term.h
130TERMFLAGS = /I$(T) /DGNUPLOT_PS_DIR=\"$(GNUPLOT_PS_DIR)\" /DGNUPLOT_JS_DIR=\"$(GNUPLOT_JS_DIR)\"
131
132# linker flags, append paths for external libs later
133LDFLAGS = /nologo /MACHINE:$(MACHINE)
134LDFLAGS = $(LDFLAGS) /MANIFEST:EMBED /MANIFESTINPUT:$(W)$(MANIFEST)
135!IF "$(DEBUG)" == "1"
136LDFLAGS = $(LDFLAGS) /DEBUG
137!ENDIF
138COMMONLIBS = kernel32.lib user32.lib gdi32.lib winspool.lib \
139             comdlg32.lib comctl32.lib advapi32.lib shell32.lib \
140             msimg32.lib gdiplus.lib shlwapi.lib \
141             d2d1.lib dwrite.lib ole32.lib
142CONSOLELIBS = ole32.lib oleaut32.lib comctl32.lib
143
144!IFDEF LIBDIR
145OPTIONS = $(OPTIONS) /I$(LIBDIR)\include
146LDFLAGS = $(LDFLAGS) /libpath:$(LIBDIR)\lib
147!ENDIF
148
149!IF "$(GDLIB)" == "1"
150OPTIONS = $(OPTIONS) /DHAVE_LIBGD /DHAVE_GD_H /DHAVE_GD_GIF /DGIF_ANIMATION /DHAVE_GD_PNG /DHAVE_GD_JPEG /DHAVE_GD_TTF
151!IFDEF GDDIR
152OPTIONS = $(OPTIONS) /I$(GDDIR)\include
153LDFLAGS = $(LDFLAGS) /libpath:$(GDDIR)\lib
154!ENDIF
155!ENDIF
156
157!IF "$(PDFLIB)" == "1"
158OPTIONS = $(OPTIONS) /DHAVE_LIBPDF
159!IFDEF PDFDIR
160LDFLAGS = $(LDFLAGS) /libpath:$(PDFDIR)\pdflib
161TERMFLAGS = $(TERMFLAGS) /I$(PDFDIR)\pdflib
162!ENDIF
163!ENDIF
164
165!IF ("$(CAIRO)" == "1") || ("$(WXT)" == "1")
166CAIROLIBS = glib-2.0.lib gobject-2.0.lib gmodule-2.0.lib \
167	cairo.lib pango-1.0.lib pangocairo-1.0.lib
168CFLAGS = $(CFLAGS) /DHAVE_CAIROPDF
169TERMFLAGS = $(TERMFLAGS) /DHAVE_CAIROEPS
170!IFDEF CAIRODIR
171CFLAGS = $(CFLAGS) /I$(CAIRODIR)\include\glib-2.0 /I$(CAIRODIR)\lib\glib-2.0\include /I$(CAIRODIR)\include\pango-1.0 /I$(CAIRODIR)\include\msvc
172!ENDIF
173!ENDIF
174
175!IF "$(WXT)" == "1"
176WXTLIBS = wxmsw28.lib wxtiff.lib
177!ENDIF
178
179!IF "$(QT)" == "1"
180!IF "$(DEBUG)" == "1"
181!IF "$(QT5)" == "1"
182QTLIBS = Qt5Cored.lib Qt5Guid.lib Qt5Networkd.lib Qt5Svgd.lib Qt5Widgetsd.lib Qt5PrintSupportd.lib qtmaind.lib
183!ELSE
184QTLIBS = QtCored4.lib QtGuid4.lib QtNetworkd4.lib QtSvgd4.lib
185!ENDIF
186!ELSE
187!IF "$(QT5)" == "1"
188QTLIBS = Qt5Core.lib Qt5Gui.lib Qt5Network.lib Qt5Svg.lib Qt5Widgets.lib Qt5PrintSupport.lib qtmain.lib
189!ELSE
190QTLIBS = QtCore4.lib QtGui4.lib QtNetwork4.lib QtSvg4.lib
191!ENDIF
192!ENDIF
193CFLAGS = $(CFLAGS) /I$(QTDIR)\include /I$(QTDIR)\include\QtCore /I$(QTDIR)\include\QtGui /I$(QTDIR)\include\QtWidgets /I$(QTDIR)\include\QtNetwork /I$(QTDIR)\include\QtSvg /DQTGNUPLOT_DATA_DIR=\"$(GNUPLOT_QT_DIR)\"
194LDFLAGS = $(LDFLAGS) /libpath:$(QTDIR)\lib
195CFLAGS = $(CFLAGS) -DQTTERM -DQT_NO_OPENGL
196MOC=$(QTDIR)\bin\moc
197UIC=$(QTDIR)\bin\uic
198RCC=$(QTDIR)\bin\rcc
199EXTRA_TARGETS = $(EXTRA_TARGETS) gnuplot_qt.exe
200!ENDIF
201
202!IF "$(LUA)" == "1"
203OPTIONS = $(OPTIONS) /DHAVE_LUA
204!IFDEF LUADIR
205OPTIONS = $(OPTIONS) /I$(LUADIR)/include
206LDFLAGS = $(LDFLAGS) /libpath:$(LUADIR)
207!ENDIF
208TERMFLAGS = $(TERMFLAGS) /DGNUPLOT_LUA_DIR=\"$(GNUPLOT_LUA_DIR)\"
209LUALIBS = lua52.lib
210!ENDIF
211
212!IF "$(CACA)" == "1"
213OPTIONS = $(OPTIONS) /DHAVE_LIBCACA
214!IFDEF CACADIR
215OPTIONS = $(OPTIONS) /I$(CACADIR)
216LDFLAGS = $(LDFLAGS) /libpath:$(CACADIR)
217!ENDIF
218CACALIBS = libcaca.lib
219!ENDIF
220
221HELPFILE = wgnuplot.chm
222!IF "$(PLATFORM)" == "X64"
223HHC=""%%PROGRAMFILES(X86)%%\HTML Help Workshop\hhc""
224!ELSE
225HHC="$(PROGRAMFILES)\HTML Help Workshop\hhc"
226!ENDIF
227
228!IF "$(PROCESSOR_ARCHITECTURE)" == "ALPHA"
229MACHINE = $(PROCESSOR_ARCHITECTURE)
230!ELSE
231!IF "$(PLATFORM)" == "X64"
232MACHINE = X64
233MANIFEST = wgnuplot.exe.manifest64
234!ELSE
235MACHINE = IX86
236MANIFEST = wgnuplot.exe.manifest
237!ENDIF
238!ENDIF
239
240# macros for makefile.all
241
242O=obj
243S=$(TOP)\src
244W=$(S)\win\\
245WX=$(S)\wxterminal\\
246Q=$(S)\qtterminal\\
247T=$(TOP)\term\\
248D=$(TOP)\docs\\
249M=$(TOP)\demo\\
250
251default: wgnuplot.exe $(HELPFILE) wgnuplot.mnu $(M)bf_test.exe gnuplot.exe demo_plugin.dll $(EXTRA_TARGETS)
252
253!INCLUDE $(S)\makefile.all
254
255OBJS = $(COREOBJS) version.obj
256
257!IF "$(CAIRO)" == "1"
258OBJS = $(OBJS) gp_cairo.$(O) gp_cairo_helpers.$(O)
259!ENDIF
260
261!IF "$(QT)" == "1"
262OBJS = $(OBJS) qt_term.$(O)
263GNUPLOTQTOBJS = gnuplot_qt.$(O) QtGnuplotWindow.$(O) \
264QtGnuplotApplication.$(O) QtGnuplotWidget.$(O) \
265QtGnuplotScene.$(O) QtGnuplotItems.$(O) \
266QtGnuplotEvent.$(O) \
267moc_QtGnuplotWindow.$(O) moc_QtGnuplotApplication.$(O) \
268moc_QtGnuplotWidget.$(O) moc_QtGnuplotScene.$(O) \
269moc_QtGnuplotEvent.$(O) qrc_QtGnuplotResource.$(O)
270
271# Call the Qt resource compiler
272qrc_QtGnuplotResource.cpp: $(Q)QtGnuplotResource.qrc
273	$(RCC) -name QtGnuplotResource -o $@ $**
274
275# Call the Qt ui compiler
276ui_QtGnuplotSettings.h: $(Q)QtGnuplotSettings.ui
277	$(UIC) -o $@ $**
278
279moc_QtGnuplotWindow.cpp: $(Q)QtGnuplotWindow.h
280	$(MOC) -o $@ $**
281
282moc_QtGnuplotApplication.cpp: $(Q)QtGnuplotApplication.h
283	$(MOC) -o $@ $**
284
285moc_QtGnuplotWidget.cpp: $(Q)QtGnuplotWidget.h
286	$(MOC) -o $@ $**
287
288moc_QtGnuplotScene.cpp: $(Q)QtGnuplotScene.h
289	$(MOC) -o $@ $**
290
291moc_QtGnuplotEvent.cpp: $(Q)QtGnuplotEvent.h
292	$(MOC) -o $@ $**
293
294gnuplot_qt.exe: ui_QtGnuplotSettings.h $(GNUPLOTQTOBJS)
295	$(LD) /entry:mainCRTStartup /subsystem:windows $(LDFLAGS) /map:gnuplot_qt.map /out:$@ $(GNUPLOTQTOBJS) $(QTLIBS) shell32.lib user32.lib
296!ENDIF
297
298WINOBJS = winmain.obj wgnuplib.obj wgraph.obj wprinter.obj wtext.obj \
299	screenbuf.obj wpause.obj wmenu.obj gpexecute.obj wgdiplus.obj \
300	wd2d.obj wredirect.obj
301
302ALL_CONSOLE_OBJS = $(OBJS:.obj=.cobj) $(WINOBJS:.obj=.cobj)
303
304
305# default rules
306.cpp.obj:
307	$(CC) /c $(CFLAGS) $(WIN_CFLAGS) $*.cpp /Fo$@
308
309.cpp.cobj:
310	$(CC) /c $(CFLAGS) $(CONSOLE_CFLAGS) $*.cpp /Fo$@
311
312{$(S)}.c.obj:
313	$(CC) /c $(CFLAGS) $(WIN_CFLAGS) $(S)\$*.c
314
315{$(S)}.c.cobj:
316	$(CC) /c $(CFLAGS) $(CONSOLE_CFLAGS) $(S)\$*.c /Fo$@
317
318{$(W)}.c.obj:
319	$(CC) /c $(CFLAGS) $(WIN_CFLAGS) $(W)$*.c /Fo$@
320
321{$(W)}.c.cobj:
322	$(CC) /c $(CFLAGS) $(CONSOLE_CFLAGS) $(W)$*.c /Fo$@
323
324{$(W)}.cpp.obj:
325	$(CC) /c $(CFLAGS) $(WIN_CFLAGS) $(W)$*.cpp /Fo$@
326
327{$(W)}.cpp.cobj:
328	$(CC) /c $(CFLAGS) $(CONSOLE_CFLAGS) $(W)$*.cpp /Fo$@
329
330{$(WX)}.c.obj:
331	$(CC) /c $(CFLAGS) $(WIN_CFLAGS) $(WX)$*.c /Fo$@
332
333{$(WX)}.c.cobj:
334	$(CC) /c $(CFLAGS) $(CONSOLE_CFLAGS) $(WX)$*.c /Fo$@
335
336{$(Q)}.cpp.obj:
337	$(CC) /c $(CFLAGS) $(WIN_CFLAGS) $(Q)$*.cpp /Fo$@
338
339{$(Q)}.cpp.cobj:
340	$(CC) /c $(CFLAGS) $(CONSOLE_CFLAGS) $(Q)$*.cpp /Fo$@
341
342{$(S)}.c{$(M)}.exe:
343	$(CC) /c $(CFLAGS) $(W)$*.c /Fo$@
344
345
346$(OBJS): config.h
347
348config.h: $(TOP)\config\config.nt
349	copy $(TOP)\config\config.nt config.h
350
351wgnuplot.exe: $(OBJS) $(WINOBJS) wgnuplot.res linkopt-w.msw
352	$(LD) /subsystem:windows $(LDFLAGS) /map:wgnuplot.map /out:$@ @linkopt-w.msw
353!IFDEF GDDIR
354	copy $(GDDIR)\bin\*.dll .
355!ENDIF
356!IFDEF LUADIR
357	copy $(LUADIR)\*.dll .
358!ENDIF
359!IFDEF CACADIR
360	copy $(CACADIR)\*.dll .
361!ENDIF
362
363gnuplot.exe: $(ALL_CONSOLE_OBJS) wgnuplot.res linkopt-c.msw
364	$(LD) /subsystem:console $(LDFLAGS) /map:wgnuplot.map /out:$@ @linkopt-c.msw
365!IFDEF GDDIR
366	copy $(GDDIR)\bin\*.dll .
367!ENDIF
368!IFDEF LUADIR
369	copy $(LUADIR)\*.dll .
370!ENDIF
371!IFDEF CACADIR
372	copy $(CACADIR)\*.dll .
373!ENDIF
374
375pgnuplot.exe: $(W)pgnuplot.c
376	$(CC) $(CBASEFLAGS) /I. /I$(TOP) /I$(S) /DWINDOWS_NO_GUI $(W)pgnuplot.c /Fe$@ /link version.obj user32.lib
377
378linkopt-w.msw: Makefile
379	echo $(OBJS) > linkopt-w.msw
380	echo $(WINOBJS) >> linkopt-w.msw
381	echo $(COMMONLIBS) >> linkopt-w.msw
382	echo wgnuplot.res >> linkopt-w.msw
383	echo htmlhelp.lib >> linkopt-w.msw
384!IF "$(GDLIB)" == "1"
385	echo bgd.lib >> linkopt-w.msw
386!ENDIF
387!IF "$(PDFLIB)" == "1"
388	echo pdflib.lib >> linkopt-w.msw
389!ENDIF
390!IF "$(CAIRO)" == "1"
391	echo $(CAIROLIBS) >> linkopt-w.msw
392!ENDIF
393!IF "$(WXT)" == "1"
394	echo $(WXTLIBS) >> linkopt-w.msw
395!ENDIF
396!IF "$(QT)" == "1"
397	echo $(QTLIBS) >> linkopt-w.msw
398!ENDIF
399!IF "$(LUA)" == "1"
400	echo $(LUALIBS) >> linkopt-w.msw
401!ENDIF
402!IF "$(CACA)" == "1"
403	echo $(CACALIBS) >> linkopt-w.msw
404!ENDIF
405
406linkopt-c.msw: Makefile
407	echo $(ALL_CONSOLE_OBJS) > linkopt-c.msw
408	echo $(COMMONLIBS) >> linkopt-c.msw
409	echo $(CONSOLELIBS) >> linkopt-c.msw
410	echo wgnuplot.res >> linkopt-c.msw
411	echo htmlhelp.lib >> linkopt-c.msw
412!IF "$(GDLIB)" == "1"
413	echo bgd.lib >> linkopt-c.msw
414!ENDIF
415!IF "$(PDFLIB)" == "1"
416	echo pdflib.lib >> linkopt-c.msw
417!ENDIF
418!IF "$(CAIRO)" == "1"
419	echo $(CAIROLIBS) >> linkopt-c.msw
420!ENDIF
421!IF "$(WXT)" == "1"
422	echo $(WXTLIBS) >> linkopt-c.msw
423!ENDIF
424!IF "$(QT)" == "1"
425	echo $(QTLIBS) >> linkopt-c.msw
426!ENDIF
427!IF "$(LUA)" == "1"
428	echo $(LUALIBS) >> linkopt-c.msw
429!ENDIF
430!IF "$(CACA)" == "1"
431	echo $(CACALIBS) >> linkopt-c.msw
432!ENDIF
433
434# rules
435
436term.obj: $(S)\term.c $(S)\term.h $(S)\plot.h $(S)\setshow.h $(S)\bitmap.h $(CORETERM)
437	$(CC) /c $(CFLAGS) $(WIN_CFLAGS) $(TERMFLAGS) $(S)\$(*B).c /Fo$@
438
439term.cobj: $(S)\term.c $(S)\term.h $(S)\plot.h $(S)\setshow.h $(S)\bitmap.h $(CORETERM)
440	$(CC) /c $(CFLAGS) $(CONSOLE_CFLAGS) $(TERMFLAGS) $(S)\$(*B).c /Fo$@
441
442winmain.obj: $(W)winmain.c $(W)wgnuplib.h $(W)wtext.h $(S)\plot.h
443	$(CC) /c $(CFLAGS) $(WIN_CFLAGS) $(W)$(*B).c /Fo$@
444
445winmain.cobj: $(W)winmain.c $(W)wgnuplib.h $(W)wtext.h $(S)\plot.h
446	$(CC) /c $(CFLAGS) $(CONSOLE_CFLAGS) $(W)winmain.c /Fo$@
447
448
449# resources
450wgnuplot.mnu: $(W)wgnuplot.mnu
451	copy $(W)wgnuplot.mnu wgnuplot.mnu
452
453wgnuplot.res :  $(W)wgnuplot.rc $(W)wgnuplib.rc $(W)wresourc.h $(W)grpicon.ico $(W)texticon.ico
454	$(RC) /l 0x409 /fowgnuplot.res /I $(W) /d "NDEBUG" /d WIN32 /d NO_MANIFEST $(W)wgnuplot.rc
455
456
457# build windows help file
458$(HELPFILE): doc2html.exe $(D)gnuplot.doc gnuplot.exe
459	doc2html $(D)gnuplot.doc $(D)windows\\
460	cd $(D)
461	-"..\config\msvc\gnuplot" -e "winhelp=1" plotstyles.gnu
462	-$(HHC) windows\wgnuplot.hhp
463	cd ..\config\msvc
464	if exist $(D)windows\wgnuplot.chm copy $(D)windows\wgnuplot.chm .
465
466doc2html.exe: $(D)windows\doc2html.c $(D)termdoc.c $(D)xref.c version.obj $(CORETERM)
467	$(CC) $(CFLAGS) /F 5000 /W1 /I. $(VERSION_CPPFLAGS) /DWINDOWS_NO_GUI /I$(D) /I$(T) -Fedoc2html.exe $(D)windows\doc2html.c $(D)termdoc.c $(D)xref.c version.obj
468
469
470# make binary demo files
471# WINDOWS_NO_GUI makes sure that wtext.h does not redefine fread() etc.
472$(M)bf_test.exe : $(S)\bf_test.c
473	$(CC) $(CFLAGS) /F 5000 /W1 /DWINDOWS_NO_GUI /Fe$(M)bf_test.exe $(S)\bf_test.c
474	cd $(M)
475	bf_test
476	cd ..\config\msvc
477
478demo_plugin.dll: $(M)plugin\demo_plugin.c
479	$(CC) $(CFLAGS) /LD /D_USRDLL /D_WINDLL $(M)plugin\$*.c /link /out:$@
480
481# clean up temporary files
482clean:
483	if exist *.obj del *.obj
484	if exist *.cobj del *.cobj
485	if exist *.map del *.map
486	if exist moc_*.cpp del moc_*.cpp
487	if exist qrc_*.cpp del qrc_*.cpp
488	if exist ui_*.h del ui_*.h
489	if exist wgnuplot.res del wgnuplot.res
490	if exist wgnuplot.chw del wgnuplot.chw
491	if exist $(M)bf_test.exe del $(M)bf_test.exe
492	if exist linkopt-w.msw del linkopt-w.msw
493	if exist linkopt-c.msw del linkopt-c.msw
494	if exist doc2html.exe del doc2html.exe
495	if exist gnuplot rmdir /s /q gnuplot
496	if exist *.tmp del *.tmp
497
498veryclean: clean
499	if exist wgnuplot.exe del wgnuplot.exe
500	if exist wgnuplot.chm del wgnuplot.chm
501	if exist wgnuplot.hlp del wgnuplot.hlp
502	if exist wgnuplot.mnu del wgnuplot.mnu
503	if exist pgnuplot.exe del pgnuplot.exe
504	if exist gnuplot.exe del gnuplot.exe
505	if exist gnuplot_qt.exe del gnuplot_qt.exe
506	if exist *.manifest del *.manifest
507	if exist $(M)binary1 del $(M)binary1
508	if exist $(M)binary2 del $(M)binary2
509	if exist $(M)binary3 del $(M)binary3
510	if exist demo_plugin.dll del demo_plugin.*
511	if exist $(M)fit.log del $(M)fit.log
512	if exist $(M)soundfit.par del $(M)soundfit.par
513	if exist config.h del config.h
514
515install:
516	if not exist $(DESTDIR) mkdir $(DESTDIR)
517	if not exist $(DESTDIR)\bin mkdir $(DESTDIR)\bin
518	copy /Y wgnuplot.exe $(DESTDIR)\bin
519	copy /Y gnuplot.exe $(DESTDIR)\bin
520	copy /Y gnuplot_qt.exe $(DESTDIR)\bin
521	copy /Y *gnuplot.exe.manifest $(DESTDIR)\bin
522	copy /Y $(W)wgnuplot.mnu $(DESTDIR)\bin
523	copy /Y $(W)wgnuplot-ja.mnu $(DESTDIR)\bin
524	if exist wgnuplot.chm copy /Y wgnuplot.chm $(DESTDIR)\bin
525	if exist wgnuplot-ja.chm copy /Y wgnuplot-ja.chm $(DESTDIR)\bin
526	if exist wgnuplot.hlp copy /Y wgnuplot.hlp $(DESTDIR)\bin
527	copy /Y *.dll $(DESTDIR)\bin
528	if exist platform\ if not exist $(DESTDIR)\bin\platforms mkdir $(DESTDIR)\bin\platforms
529	if exist platform\ xcopy /Y /S platforms $(DESTDIR)\bin\platforms
530	if not exist $(DESTDIR)\$(GNUPLOT_PS_DIR) mkdir $(DESTDIR)\$(GNUPLOT_PS_DIR)
531	xcopy /Y $(T)PostScript\*.ps $(DESTDIR)\$(GNUPLOT_PS_DIR)
532	if not exist $(DESTDIR)\$(GNUPLOT_JS_DIR) mkdir $(DESTDIR)\$(GNUPLOT_JS_DIR)
533	xcopy /Y $(T)js\*.* $(DESTDIR)\$(GNUPLOT_JS_DIR)
534	if not exist $(DESTDIR)\$(GNUPLOT_LUA_DIR) mkdir $(DESTDIR)\$(GNUPLOT_LUA_DIR)
535	xcopy /Y $(T)lua\*.* $(DESTDIR)\$(GNUPLOT_LUA_DIR)
536	if not exist $(DESTDIR)\$(GNUPLOT_SHARE_DIR) mkdir $(DESTDIR)\$(GNUPLOT_SHARE_DIR)
537	copy /Y $(TOP)\share\gnuplotrc $(DESTDIR)\$(GNUPLOT_SHARE_DIR)
538	copy /Y $(TOP)\share\*.gp $(DESTDIR)\$(GNUPLOT_SHARE_DIR)
539	if not exist $(DESTDIR)\share\LaTeX mkdir $(DESTDIR)\share\LaTeX
540	copy /Y $(TOP)\share\LaTeX\README $(DESTDIR)\share\LaTeX
541	copy /Y $(TOP)\share\LaTeX\gnuplot.cfg $(DESTDIR)\share\LaTeX
542	if not exist $(DESTDIR)\docs mkdir $(DESTDIR)\docs
543	for %f in (NEWS) do copy $(TOP)\%f $(DESTDIR)\%f
544	for %f in (BUGS README Copyright ChangeLog FAQ.pdf) do copy $(TOP)\%f $(DESTDIR)\docs\%f
545	if not exist $(DESTDIR)\license mkdir $(DESTDIR)\license
546	for %f in (Copyright) do copy $(TOP)\%f $(DESTDIR)\license\%f
547	if exist $(TOP)\win\README-Windows.txt copy /Y $(TOP)\win\README-Windows.txt $(DESTDIR)
548	if exist $(TOP)\win\README-Windows-ja.txt copy /Y $(TOP)\win\README-Windows-ja.txt $(DESTDIR)
549	if not exist $(DESTDIR)\demo mkdir $(DESTDIR)\demo
550	xcopy /Y $(TOP)\demo $(DESTDIR)\demo
551	if not exist $(DESTDIR)\demo\games mkdir $(DESTDIR)\demo\games
552	xcopy /Y $(TOP)\demo\games $(DESTDIR)\demo\games
553#	if not exist $(DESTDIR)\contrib\pm3d mkdir $(DESTDIR)\contrib\pm3d
554#	xcopy /Y $(TOP)\pm3d\contrib\*.* $(DESTDIR)\contrib\pm3d
555
556zip:
557	$(MAKE) DESTDIR=.\gnuplot install
558	zip -mro9 gp500-msvc-win32.zip gnuplot
559