summaryrefslogtreecommitdiff
path: root/beos/Makefile.target
blob: be58be4a7e756dd61c9a9e0f54595acd32e087ad (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
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
# ----------------------------------------------------------------------------
# BeOS target setup
# ----------------------------------------------------------------------------


  $(eval $(call feature_enabled,PNG,-DWITH_PNG,-lpng,PNG (libpng)  ))

  LDFLAGS += -L/boot/home/config/lib
  # for Haiku
  LDFLAGS += -L/boot/common/lib
  # some people do *not* have libm...
  LDFLAGS += -lxml2 -lcurl -liconv
  LDFLAGS += -lssl -lcrypto -lcss -ldom -lparserutils -lhubbub -lwapcaplet

  CFLAGS += -I. -O $(WARNFLAGS) -Dnsbeos		\
		-D_BSD_SOURCE -D_POSIX_C_SOURCE		\
		-Drestrict="" -Wno-multichar 
  # DEBUG
  CFLAGS += -g -O0
  # -DDEBUG=1

  BEOS_BERES := beres
  BEOS_RC := rc
  BEOS_XRES := xres
  BEOS_SETVER := setversion
  BEOS_MIMESET := mimeset
  VERSION_FULL := $(shell sed -n '/"/{s/.*"\(.*\)".*/\1/;p;}' desktop/version.c)
  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)
  RSRC_BEOS = $(addprefix $(OBJROOT)/,$(subst /,_,$(patsubst %.rdef,%.rsrc,$(RDEF_BEOS))))
  RESOURCES = $(RSRC_BEOS)
  ifeq ($(HOST),beos)
    CFLAGS += -I/boot/home/config/include		\
		-I/boot/home/config/include/libxml2	\
		-I/boot/home/config/include/libmng	\
		-I/boot/home/config/include/hubbub	\
		-I/boot/home/config/include/libcss	\
		-I/boot/home/config/include/parserutils
    ifneq ($(wildcard /boot/develop/lib/*/libzeta.so),)
      LDFLAGS += -lzeta
    endif
    ifneq ($(wildcard /boot/develop/lib/*/libnetwork.so),)
      # Haiku
      CFLAGS += -I/boot/common/include		\
		-I/boot/common/include/libxml2	\
		-I/boot/common/include/libmng	\
		-I/boot/common/include/hubbub	\
		-I/boot/common/include/libcss	\
		-I/boot/common/include/parserutils
      NETLDFLAGS := -lnetwork
    else
      ifneq ($(wildcard /boot/develop/lib/*/libbind.so),)
        # BONE
        NETLDFLAGS := -lsocket -lbind
      else
        # net_server, will probably never work
        NETLDFLAGS := -lnet
      endif
    endif
  else
    # cross: Haiku ?
    NETLDFLAGS := -lnetwork
  endif
  LDFLAGS += -lbe -ltranslation $(NETLDFLAGS)

  $(eval $(call feature_enabled,NSSVG,-DWITH_NS_SVG,-lsvgtiny,SVG (libsvgtiny)))
  ifeq ($(HOST),beos)
    CFLAGS += -I$(PREFIX)/include
    LDFLAGS += -L$(PREFIX)/lib
    $(eval $(call feature_enabled,BMP,-DWITH_BMP,-lnsbmp,BMP (libnsbmp)))
    $(eval $(call feature_enabled,GIF,-DWITH_GIF,-lnsgif,GIF (libnsgif)))
    $(eval $(call feature_enabled,PNG,-DWITH_PNG,-lpng,PNG (libpng)  ))
  else
    NETSURF_FEATURE_BMP_CFLAGS := -DWITH_BMP
    NETSURF_FEATURE_GIF_CFLAGS := -DWITH_GIF
    NETSURF_FEATURE_PNG_CFLAGS := -DWITH_PNG
    $(eval $(call pkg_config_find_and_add,BMP,libnsbmp,BMP))
    $(eval $(call pkg_config_find_and_add,GIF,libnsgif,GIF))
    $(eval $(call pkg_config_find_and_add,PNG,libpng,PNG  ))
  endif

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

# S_BEOS are sources purely for the BeOS build
S_BEOS := about.cpp bitmap.cpp fetch_rsrc.cpp		\
	filetype.cpp font.cpp gui.cpp login.cpp	\
	gui_options.cpp plotters.cpp save_complete.cpp	\
	scaffolding.cpp search.cpp schedule.cpp		\
	thumbnail.cpp treeview.cpp throbber.cpp		\
	window.cpp system_colour.cpp
S_BEOS := $(addprefix beos/,$(S_BEOS))

RDEF_BEOS := res.rdef
RDEF_BEOS := $(addprefix beos/,$(RDEF_BEOS))

RDEF_IMP_BEOS := res_import.rdef
RDEF_IMP_BEOS := $(addprefix $(OBJROOT)/,$(subst /,_,$(RDEF_IMP_BEOS)))

RDEP_BEOS := \
	adblock.css beosdefault.css default.css internal.css quirks.css	\
	netsurf.png ca-bundle.txt messages
RDEP_BEOS := $(addprefix beos/res/,$(RDEP_BEOS))			\
	$(wildcard beos/res/Icons/*.png)				\
	$(wildcard beos/res/throbber/throbber*.png)


# 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_BEOS)
EXETARGET := NetSurf

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

install-beos:
#       TODO:HAIKU -- not sure if throbber is needed.  being left out for now.
	mkdir -p $(DESTDIR)$(NETSURF_BEOS_BIN)
	mkdir -p $(DESTDIR)$(NETSURF_BEOS_RESOURCES)
#	mkdir -p $(DESTDIR)$(NETSURF_BEOS_RESOURCES)throbber
	@copyattr -d $(EXETARGET) $(DESTDIR)$(NETSURF_BEOS_BIN)NetSurf
	@cp -vRL beos/res/adblock.css $(DESTDIR)$(NETSURF_BEOS_RESOURCES)
	@cp -vRL beos/res/ca-bundle.txt $(DESTDIR)$(NETSURF_BEOS_RESOURCES)
	@cp -vRL beos/res/default.css $(DESTDIR)$(NETSURF_BEOS_RESOURCES)
	@cp -vRL beos/res/beosdefault.css $(DESTDIR)$(NETSURF_BEOS_RESOURCES)
	@cp -vRL gtk/res/license $(DESTDIR)$(NETSURF_BEOS_RESOURCES)
#	@cp -vRL beos/res/throbber/*.png $(DESTDIR)$(NETSURF_BEOS_RESOURCES)throbber
	gzip -9v < beos/res/messages > $(DESTDIR)$(NETSURF_BEOS_RESOURCES)messages 

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

package-beos: