summaryrefslogtreecommitdiff
path: root/frontends/windows/Makefile
blob: 1b93e4cc79680baf736c649960b6269462979fe7 (plain)
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
#
# Makefile for NetSurf Windows target
#
# This file is part of NetSurf 


VERSION_MAJ := $(shell sed -n '/_major/{s/.* = \([0-9]*\).*/\1/;p;}' desktop/version.c)
VERSION_MIN := $(shell sed -n '/_minor/{s/.* = \([0-9]*\).*/\1/;p;}' desktop/version.c)


LDFLAGS += -L${GCCSDK_INSTALL_ENV}/lib 
CFLAGS += -I${GCCSDK_INSTALL_ENV}/include/

$(eval $(call pkg_config_find_and_add,libcares,Cares))
$(eval $(call pkg_config_find_and_add,zlib,ZLib))

# libraries for windows API
LDFLAGS += -lgnurx -lgdi32 -lcomctl32 -lws2_32 -lmsimg32 -lshlwapi -mwindows

CFLAGS += -U__STRICT_ANSI__ -mwin32
# only windows versions after XP are supported
# https://msdn.microsoft.com/en-gb/library/windows/desktop/aa383745
CFLAGS += '-DWINVER=0x0501'
CFLAGS += '-D_WIN32_WINNT=0x0501'
CFLAGS += '-D_WIN32_WINDOWS=0x0501'
CFLAGS += '-D_WIN32_IE=0x0501'

#installed resource path
CFLAGS += '-DNETSURF_WINDOWS_RESPATH="$(NETSURF_WINDOWS_RESPATH)"'

WSCFLAGS := -std=c99 -Dnswin32 -DCURL_STATICLIB -DCARES_STATICLIB -g

CFLAGS += $(WSCFLAGS)
LDFLAGS += $(WSCFLAGS)

# ----------------------------------------------------------------------------
# built-in resource setup
# ----------------------------------------------------------------------------

$(OBJROOT)/windows_resource.o: $(FRONTEND_RESOURCES_DIR)/resource.rc
	$(VQ)echo " WINDRES: compiling windows resources"
	${Q}$(WINDRES) $< -O coff -o $@

S_RESOURCES := windows_resource.o

# ----------------------------------------------------------------------------
# Source file setup
# ----------------------------------------------------------------------------

# sources purely for the windows build
S_FRONTEND := main.c window.c gui.c drawable.c plot.c findfile.c	\
	  font.c bitmap.c about.c prefs.c download.c filetype.c file.c	\
	  localhistory.c schedule.c windbg.c pointers.c \
	  corewindow.c hotlist.c cookies.c global_history.c ssl_cert.c

# This is the final source build list
# Note this is deliberately *not* expanded here as common and image
#   are not yet available
SOURCES = $(S_COMMON) $(S_IMAGE) $(S_BROWSER) $(S_FRONTEND) $(S_RESOURCES)
EXETARGET := NetSurf.exe

# ----------------------------------------------------------------------------
# Install target
# ----------------------------------------------------------------------------

install-windows:

# ----------------------------------------------------------------------------
# Package target
# ----------------------------------------------------------------------------

package-windows: netsurf-installer.exe

WIN_RES_OBJ := installer.nsi NetSurf.ico netsurf.png welcome.html default.css
WIN_RES_INS_OBJ := $(addprefix $(FRONTEND_RESOURCES_DIR)/,$(WIN_RES_OBJ)) $(OBJROOT)/messages-en

# deal with making installer generation verbose
ifeq ($(Q),)
NSIS_VERBOSE := 4
else
NSIS_VERBOSE := 0
endif

# installer messages generation
$(OBJROOT)/messages-en: resources/FatMessages
	$(VQ)echo "MSGSPLIT: Language: en Filter: win"
	$(Q)$(SPLIT_MESSAGES) -l en -p win -f messages -o $@ $<

netsurf-installer.exe: $(EXETARGET) $(WIN_RES_INS_OBJ)
	$(VQ)echo "MAKENSIS: $@"
	$(Q)makensis -V$(NSIS_VERBOSE) -NOCD -DOBJROOT=$(OBJROOT) -DRESDIR=$(FRONTEND_RESOURCES_DIR) -DVERSIONMAJOR=$(VERSION_MAJ) -DVERSIONMINOR=$(VERSION_MIN) -DOUTFNAME=$@ $(FRONTEND_RESOURCES_DIR)/installer.nsi

clean-installer:
	$(VQ)echo "   CLEAN: netsurf-installer.exe"
	$(Q)$(RM) netsurf-installer.exe
CLEANS += clean-installer