summaryrefslogtreecommitdiffstats
path: root/package/xerces/xerces.mk
blob: 6e84e64a84747eec648775ed663590f79b55890a (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
#############################################################
#
# xerces
#
#############################################################
XERCES_VERSION:=3.0.1
XERCES_SOURCE:=xerces-c-$(XERCES_VERSION).tar.gz
XERCES_SITE:=http://archive.apache.org/dist/xerces/c/3/sources/
XERCES_CAT:=$(ZCAT)
XERCES_DIR:=$(BUILD_DIR)/xerces-c-$(XERCES_VERSION)
LIBXERCES_BINARY:=libxerces-c-3.0.so

# XERCES-C will install a number of applications
# in $(STAGING_DIR)/usr/bin
# We may want to copy these to the target

XERCES_APPS:= \
	CreateDOMDocument	\
	DOMCount		\
	DOMPrint		\
	EnumVal			\
	MemParse		\
	PParse			\
	PSVIWriter		\
	Redirect		\
	SAX2Count		\
	SAX2Print		\
	SAXCount		\
	SAXPrint		\
	SCMPrint		\
	SEnumVal		\
	StdInParse

# XERCES-C installs a 4.2MB worth of "*.hpp" files
# in the
#	"dom", "framework", "internal", "parsers",
#	"sax", "sax2", "util", "validators", "xinclude"
# directories

XERCES_INCLUDES:=/usr/include/xercesc

ifneq ($(BR2_ENABLE_LOCALE),y)
XERCES_MAKE_OPT=LIBS="-liconv"
endif

$(DL_DIR)/$(XERCES_SOURCE):
	 $(call DOWNLOAD,$(XERCES_SITE),$(XERCES_SOURCE))

xerces-source: $(DL_DIR)/$(XERCES_SOURCE)

$(XERCES_DIR)/.unpacked: $(DL_DIR)/$(XERCES_SOURCE)
	$(XERCES_CAT) $(DL_DIR)/$(XERCES_SOURCE) | tar -C $(BUILD_DIR) $(TAR_OPTIONS) -
# toolchain/patch-kernel.sh $(XERCES_DIR) package/xerces/ \*.patch*
	touch $(XERCES_DIR)/.unpacked

#	Support for the following should be added later
#		--with-curl=
#		--with-icu=
#		--with-pkgconfigdir=

$(XERCES_DIR)/.configured: $(XERCES_DIR)/.unpacked
	(cd $(XERCES_DIR); rm -rf config.cache; \
		$(TARGET_CONFIGURE_OPTS) \
		./configure		\
		--target=$(GNU_TARGET_NAME) \
		--host=$(GNU_TARGET_NAME) \
		--build=$(GNU_HOST_NAME) \
		--prefix=/usr		\
		--libdir=/usr/lib	\
		--libexecdir=/usr/lib	\
		--sysconfdir=/etc	\
		--localstatedir=/var	\
		--enable-shared		\
		--disable-threads	\
		--disable-network	\
		--with-gnu-ld		\
	)
	touch $@

$(XERCES_DIR)/src/.libs/$(LIBXERCES_BINARY): $(XERCES_DIR)/.configured
	$(MAKE1) $(TARGET_CONFIGURE_OPTS) $(XERCES_MAKE_OPT) -C $(XERCES_DIR)

$(STAGING_DIR)/usr/lib/$(LIBXERCES_BINARY): $(XERCES_DIR)/src/.libs/$(LIBXERCES_BINARY)
	$(MAKE) $(TARGET_CONFIGURE_OPTS) DESTDIR=$(STAGING_DIR) \
		-C $(XERCES_DIR) install
	$(INSTALL) -c $(XERCES_DIR)/src/.libs/libxerces-c.lai	\
		$(STAGING_DIR)/usr/lib/libxerces-c.la
	$(SED) "s,^libdir=.*,libdir=\'$(STAGING_DIR)/usr/lib\',g" $(STAGING_DIR)/usr/lib/libxerces-c.la

$(TARGET_DIR)/usr/lib/$(LIBXERCES_BINARY): $(STAGING_DIR)/usr/lib/$(LIBXERCES_BINARY)
	cp -a $(STAGING_DIR)/usr/lib/$(LIBXERCES_BINARY)* $(TARGET_DIR)/usr/lib
	$(STRIPCMD) $(STRIP_STRIP_UNNEEDED) $(TARGET_DIR)/usr/lib/$(LIBXERCES_BINARY)

xerces: $(if $(BR2_PACKAGE_LIBICONV),libiconv) $(TARGET_DIR)/usr/lib/$(LIBXERCES_BINARY)

xerces-bin: $(XERCES_DIR)/usr/lib/$(LIBXERCES_BINARY)

xerces-tbin: $(STAGING_DIR)/usr/lib/$(LIBXERCES_BINARY)

xerces-unpacked: $(XERCES_DIR)/.unpacked

xerces-clean:
	rm -rf $(STAGING_DIR)/usr/include/xercesc
	rm -f $(STAGING_DIR)/lib/libxerces*
	rm -f $(TARGET_DIR)/usr/lib/libxerces*
	-$(MAKE) -C $(XERCES_DIR) clean

xerces-dirclean:
	rm -rf $(XERCES_DIR)

#############################################################
#
# Toplevel Makefile options
#
#############################################################
ifeq ($(BR2_PACKAGE_XERCES),y)
TARGETS+=xerces
endif