blob: 4b83f52dd5e4e7c9967166eeb663ffee9e6ed4ea [file] [log] [blame]
Bram Moolenaarf4b8e572004-06-24 15:53:16 +00001# Makefile for GvimExt, using MSVC
2# Options:
3# DEBUG=yes Build debug version (for VC7 and maybe later)
Bram Moolenaard7383882017-06-13 15:22:12 +02004# CPUARG= /arch:IA32/AVX/etc, call from main makefile to set
5# automatically from CPUNR
Bram Moolenaarf4b8e572004-06-24 15:53:16 +00006#
7
Bram Moolenaard7383882017-06-13 15:22:12 +02008TARGETOS = WINNT
9
Bram Moolenaar1fd3e302015-05-05 10:25:16 +020010!ifndef APPVER
Bram Moolenaard7383882017-06-13 15:22:12 +020011APPVER = 5.01
Bram Moolenaar1fd3e302015-05-05 10:25:16 +020012!endif
Bram Moolenaar3fb377f2020-02-12 21:52:32 +010013!ifndef WINVER
14WINVER = 0x0501
15!endif
Bram Moolenaarf4b8e572004-06-24 15:53:16 +000016
17!if "$(DEBUG)" != "yes"
18NODEBUG = 1
19!endif
20
Bram Moolenaar4514d272016-01-10 19:21:36 +010021!ifdef PROCESSOR_ARCHITECTURE
22# On Windows NT
23! ifndef CPU
24CPU = i386
Bram Moolenaar3d6d5cc2016-01-15 18:03:32 +010025! if !defined(PLATFORM) && defined(TARGET_CPU)
26PLATFORM = $(TARGET_CPU)
27! endif
Bram Moolenaar4514d272016-01-10 19:21:36 +010028! ifdef PLATFORM
29! if ("$(PLATFORM)" == "x64") || ("$(PLATFORM)" == "X64")
30CPU = AMD64
Bram Moolenaar577fadf2019-04-04 20:32:24 +020031! elseif ("$(PLATFORM)" == "arm64") || ("$(PLATFORM)" == "ARM64")
32CPU = ARM64
Bram Moolenaar4514d272016-01-10 19:21:36 +010033! elseif ("$(PLATFORM)" != "x86") && ("$(PLATFORM)" != "X86")
34! error *** ERROR Unknown target platform "$(PLATFORM)". Make aborted.
35! endif
36! endif
37! endif
38!else
39CPU = i386
40!endif
41
Bram Moolenaar73313042012-11-23 21:47:22 +010042!ifdef SDK_INCLUDE_DIR
43!include $(SDK_INCLUDE_DIR)\Win32.mak
Bram Moolenaare16b00a2017-08-06 17:38:06 +020044!elseif "$(USE_WIN32MAK)"=="yes"
Bram Moolenaar73313042012-11-23 21:47:22 +010045!include <Win32.mak>
Bram Moolenaare16b00a2017-08-06 17:38:06 +020046!else
47cc = cl
48link = link
49rc = rc
50cflags = -nologo -c
51lflags = -incremental:no -nologo
52rcflags = /r
53olelibsdll = ole32.lib uuid.lib oleaut32.lib user32.lib gdi32.lib advapi32.lib
Bram Moolenaar73313042012-11-23 21:47:22 +010054!endif
Bram Moolenaarf4b8e572004-06-24 15:53:16 +000055
Bram Moolenaard7383882017-06-13 15:22:12 +020056# include CPUARG
57cflags = $(cflags) $(CPUARG)
58
Bram Moolenaar3fb377f2020-02-12 21:52:32 +010059# set WINVER and _WIN32_WINNT
60cflags = $(cflags) -DWINVER=$(WINVER) -D_WIN32_WINNT=$(WINVER)
61
62!if "$(CL)" == "/D_USING_V110_SDK71_"
63rcflags = $(rcflags) /D_USING_V110_SDK71_
64!endif
65
Bram Moolenaar73f44392017-10-07 18:38:43 +020066SUBSYSTEM = console
67!if "$(SUBSYSTEM_VER)" != ""
68SUBSYSTEM = $(SUBSYSTEM),$(SUBSYSTEM_VER)
69!endif
70
Bram Moolenaar7edf0ba2019-04-11 17:22:57 +020071!if "$(CPU)" == "AMD64" || "$(CPU)" == "ARM64"
Bram Moolenaar577fadf2019-04-04 20:32:24 +020072OFFSET = 0x11C000000
73!else
74OFFSET = 0x1C000000
75!endif
76
Bram Moolenaarf4b8e572004-06-24 15:53:16 +000077all: gvimext.dll
78
79gvimext.dll: gvimext.obj \
80 gvimext.res
Bram Moolenaar577fadf2019-04-04 20:32:24 +020081 $(link) $(lflags) -dll -def:gvimext.def -base:$(OFFSET) -out:$*.dll $** $(olelibsdll) shell32.lib comctl32.lib -subsystem:$(SUBSYSTEM)
Bram Moolenaar73f44392017-10-07 18:38:43 +020082 if exist $*.dll.manifest mt -nologo -manifest $*.dll.manifest -outputresource:$*.dll;2
Bram Moolenaarf4b8e572004-06-24 15:53:16 +000083
84gvimext.obj: gvimext.h
85
86.cpp.obj:
Bram Moolenaar4514d272016-01-10 19:21:36 +010087 $(cc) $(cflags) -DFEAT_GETTEXT $(cvarsmt) $*.cpp
Bram Moolenaarf4b8e572004-06-24 15:53:16 +000088
89gvimext.res: gvimext.rc
Bram Moolenaarbc073092016-02-02 18:50:45 +010090 $(rc) /nologo $(rcflags) $(rcvars) gvimext.rc
Bram Moolenaarf4b8e572004-06-24 15:53:16 +000091
92clean:
Bram Moolenaar4514d272016-01-10 19:21:36 +010093 - if exist gvimext.dll del gvimext.dll
94 - if exist gvimext.lib del gvimext.lib
95 - if exist gvimext.exp del gvimext.exp
96 - if exist gvimext.obj del gvimext.obj
97 - if exist gvimext.res del gvimext.res
98 - if exist gvimext.dll.manifest del gvimext.dll.manifest