X-Git-Url: https://git.rohieb.name/openwrt.git/blobdiff_plain/ce022c47710859a697219ab87d1db655332c4d62..04b717d25bfd9d11713211757ff557bd533a53da:/package/cups/Makefile

diff --git a/package/cups/Makefile b/package/cups/Makefile
index 4280a3fc3..ef921ed88 100644
--- a/package/cups/Makefile
+++ b/package/cups/Makefile
@@ -11,93 +11,106 @@ PKG_SOURCE_URL:=http://ftp.funet.fi/pub/mirrors/ftp.easysw.com/ftp.easysw.com/pu
 	http://ftp.rz.tu-bs.de/pub/mirror/ftp.easysw.com/ftp/pub/cups/$(PKG_VERSION) \
 	ftp://ftp3.easysw.com/pub/cups/$(PKG_VERSION)
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-source.tar.bz2
-PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION)
 PKG_CAT:=bzcat
-PKG_IPK:=$(PACKAGE_DIR)/$(PKG_NAME)_$(PKG_VERSION)-$(PKG_RELEASE)_$(ARCH).ipk
-PKG_IPK_DIR:=$(PKG_BUILD_DIR)/ipkg
 
-$(DL_DIR)/$(PKG_SOURCE):
-	 $(SCRIPT_DIR)/download.pl $(DL_DIR) $(PKG_SOURCE) $(PKG_MD5SUM) $(PKG_SOURCE_URL)
+PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION)
+PKG_INSTALL_DIR:=$(PKG_BUILD_DIR)/ipkg-install
+
+include $(TOPDIR)/package/rules.mk
 
-$(PKG_BUILD_DIR)/.patched: $(DL_DIR)/$(PKG_SOURCE)
-	$(PKG_CAT) $(DL_DIR)/$(PKG_SOURCE) | tar -C $(BUILD_DIR) $(TAR_OPTIONS) -
-	$(PATCH) $(PKG_BUILD_DIR) ./patches
-	touch $(PKG_BUILD_DIR)/.patched
+$(eval $(call PKG_template,CUPS,$(PKG_NAME),$(PKG_VERSION)-$(PKG_RELEASE),$(ARCH)))
 
-$(PKG_BUILD_DIR)/.configured: $(PKG_BUILD_DIR)/.patched
-	(cd $(PKG_BUILD_DIR); rm -rf config.cache; \
-		ac_cv_path_STRIP="$(STRIP)" \
+$(PKG_BUILD_DIR)/.configured:
+	(cd $(PKG_BUILD_DIR); rm -rf config.{cache,status} ; \
 		$(TARGET_CONFIGURE_OPTS) \
 		CFLAGS="$(TARGET_CFLAGS)" \
+		CPPFLAGS="-I$(STAGING_DIR)/usr/include" \
+		LDFLAGS="-L$(STAGING_DIR)/usr/lib" \
 		./configure \
-		--target=$(GNU_TARGET_NAME) \
-		--host=$(GNU_TARGET_NAME) \
-		--build=$(GNU_HOST_NAME) \
-		--prefix=$(CUPS_IPK_DIR)/usr \
-		--exec-prefix=/usr \
-		--bindir=/usr/bin \
-		--sbindir=/usr/sbin \
-		--libexecdir=/usr/lib \
-		--sysconfdir=/etc \
-		--datadir=/usr/share \
-		--localstatedir=/var \
-		--mandir=/usr/man \
-		--infodir=/usr/info \
-		--program-prefix="" \
-		--with-gnu-ld \
-		--with-cups-user=root \
-		--with-cups-group=root \
-		--without-perl \
-		--without-python \
-		--without-php \
-		--disable-slp \
-		--disable-gnutls \
-		--disable-openssl \
-		--disable-cdsassl \
-		--disable-ssl \
-		--disable-slp \
+		  --target=$(GNU_TARGET_NAME) \
+		  --host=$(GNU_TARGET_NAME) \
+		  --build=$(GNU_HOST_NAME) \
+		  --program-prefix="" \
+		  --program-suffix="" \
+		  --prefix=/usr \
+		  --exec-prefix=/usr \
+		  --bindir=/usr/bin \
+		  --datadir=/usr/share \
+		  --includedir=/usr/include \
+		  --infodir=/usr/share/info \
+		  --libdir=/usr/lib \
+		  --libexecdir=/usr/lib \
+		  --localstatedir=/var \
+		  --mandir=/usr/share/man \
+		  --sbindir=/usr/sbin \
+		  --sysconfdir=/etc \
+		  $(DISABLE_NLS) \
+		  $(DISABLE_LARGEFILE) \
+		  --with-gnu-ld \
+		  --with-cups-user=root \
+		  --with-cups-group=root \
+		  --without-perl \
+		  --without-python \
+		  --without-php \
+		  --disable-slp \
+		  --disable-gnutls \
+		  --disable-openssl \
+		  --disable-cdsassl \
+		  --disable-ssl \
+		  --disable-slp \
 	);
-	touch  $(PKG_BUILD_DIR)/.configured
+	touch $@
+
+$(PKG_BUILD_DIR)/.built:
+	rm -rf $(PKG_INSTALL_DIR)
+	mkdir -p $(PKG_INSTALL_DIR)
+	$(MAKE) -C $(PKG_BUILD_DIR) \
+		DSTROOT="$(PKG_INSTALL_DIR)" \
+		STRIP="/bin/true" \
+		all install
+	touch $@
 
+$(IPKG_CUPS):
+	install -d -m0755 $(IDIR_CUPS)/etc/cups
+	cp -fpR $(PKG_INSTALL_DIR)/etc/cups/* $(IDIR_CUPS)/etc/cups/
+	install -d -m0755 $(IDIR_CUPS)/usr/bin
+	cp -fpR $(PKG_INSTALL_DIR)/usr/bin/* $(IDIR_CUPS)/usr/bin/
+	rm -f $(IDIR_CUPS)/usr/bin/cups-config
+	install -d -m0755 $(IDIR_CUPS)/usr/lib
+	cp -fpR $(PKG_INSTALL_DIR)/usr/lib/libcups.so.* $(IDIR_CUPS)/usr/lib/
+	cp -fpR $(PKG_INSTALL_DIR)/usr/lib/cups $(IDIR_CUPS)/usr/lib/
+	install -d -m0755 $(IDIR_CUPS)/usr/share/cups/templates
+	cp -fpR $(PKG_INSTALL_DIR)/usr/share/cups/templates/*.tmpl $(IDIR_CUPS)/usr/share/cups/templates/
+	install -d -m0755 $(IDIR_CUPS)/usr/share/doc/cups
+	cp -fpR $(PKG_INSTALL_DIR)/usr/share/doc/cups/index.html $(IDIR_CUPS)/usr/share/doc/cups/
+	cp -fpR $(PKG_INSTALL_DIR)/usr/share/doc/cups/images $(IDIR_CUPS)/usr/share/doc/cups/
+	install -d -m0755 $(IDIR_CUPS)/usr/sbin
+	cp -fpR $(PKG_INSTALL_DIR)/usr/sbin/* $(IDIR_CUPS)/usr/sbin/
+	# overwrite default config with our own
+	cp -fpR ./files/etc/cups/* $(IDIR_CUPS)/etc/cups/
+	# install initscript with priority 60
+	install -d -m0755 $(IDIR_CUPS)/etc/init.d
+	install -m0755 ./files/cupsd.init $(IDIR_CUPS)/etc/init.d/S60cupsd
+	find $(IDIR_CUPS) -name CVS | xargs rm -rf
+	$(RSTRIP) $(IDIR_CUPS)
+	$(IPKG_BUILD) $(IDIR_CUPS) $(PACKAGE_DIR)
 
-$(PKG_IPK_DIR)/usr/sbin/cupsd: $(PKG_BUILD_DIR)/.configured
-	$(MAKE) -C $(PKG_BUILD_DIR)
-	$(MAKE) STRIP=$(STRIP) DSTROOT=$(PKG_IPK_DIR) -C $(PKG_BUILD_DIR) install
-	cp -a $(PKG_IPK_DIR)/usr/lib/* $(STAGING_DIR)/lib/
-	cp -a $(PKG_IPK_DIR)/usr/include/* $(STAGING_DIR)/include/
+$(STAGING_DIR)/usr/lib/libcups.so: $(PKG_BUILD_DIR)/.built
+	mkdir -p $(STAGING_DIR)/usr/bin
+	cp -fpR $(PKG_INSTALL_DIR)/usr/bin/cups-config $(STAGING_DIR)/usr/bin/
+	mkdir -p $(STAGING_DIR)/usr/include
+	cp -fpR $(PKG_INSTALL_DIR)/usr/include/cups $(STAGING_DIR)/usr/include/
+	mkdir -p $(STAGING_DIR)/usr/lib
+	cp -fpR $(PKG_INSTALL_DIR)/usr/lib/libcups.{a,so*} $(STAGING_DIR)/usr/lib/
 
-$(PKG_IPK): $(PKG_IPK_DIR)/usr/sbin/cupsd
-	$(SCRIPT_DIR)/make-ipkg-dir.sh $(PKG_IPK_DIR) $(PKG_NAME).control $(PKG_VERSION)-$(PKG_RELEASE) $(ARCH)
-	rm -f $(PKG_IPK_DIR)/usr/bin/cups-config
-	rm -f $(PKG_IPK_DIR)/usr/lib/*.a
-	rm -f $(PKG_IPK_DIR)/usr/share/doc/cups/* || true
-	rm -rf $(PKG_IPK_DIR)/usr/share/doc/cups/??
-	rm -rf $(PKG_IPK_DIR)/usr/share/locale
-	rm -rf $(PKG_IPK_DIR)/usr/share/cups/banners
-	rm -rf $(PKG_IPK_DIR)/usr/share/cups/charsets
-	rm -rf $(PKG_IPK_DIR)/usr/share/cups/fonts
-	rm -rf $(PKG_IPK_DIR)/usr/share/cups/model
-	rm -rf $(PKG_IPK_DIR)/usr/share/cups/data
-	rm -rf $(PKG_IPK_DIR)/usr/share/cups/templates/??
-	rm -rf $(PKG_IPK_DIR)/usr/include
-	rm -rf $(PKG_IPK_DIR)/var
-	rm -rf $(PKG_IPK_DIR)/etc/*.d
-	$(STRIP) $(PKG_IPK_DIR)/usr/bin/*
-	$(STRIP) $(PKG_IPK_DIR)/usr/lib/cups/backend/*
-	$(STRIP) $(PKG_IPK_DIR)/usr/lib/cups/cgi-bin/*
-	$(STRIP) $(PKG_IPK_DIR)/usr/lib/cups/daemon/*
-	cp -a ./files/* $(PKG_IPK_DIR)/
-	find $(PKG_IPK_DIR) -name CVS | xargs rm -rf
-	$(IPKG_BUILD) $(PKG_IPK_DIR) $(PACKAGE_DIR)
+install-dev: $(STAGING_DIR)/usr/lib/libcups.so
 
-$(IPKG_STATE_DIR)/info/$(PKG_NAME).list:
-	$(IPKG) install $(PKG_IPK)
+uninstall-dev:
+	rm -rf \
+	  $(STAGING_DIR)/usr/bin/cups-config \
+	  $(STAGING_DIR)/usr/include/cups \
+	  $(STAGING_DIR)/usr/lib/libcups.{a,so*}
 
-source: $(DL_DIR)/$(PKG_SOURCE)
-prepare: $(PKG_BUILD_DIR)/.patched
-compile: $(PKG_IPK)
-install: $(IPKG_STATE_DIR)/info/$(PKG_NAME).list
+compile: install-dev
+clean: uninstall-dev
 
-clean:
-	rm -rf $(PKG_BUILD_DIR)
-	rm -f $(PKG_IPK)