aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMike Frysinger <vapier@gentoo.org>2005-09-08 00:19:37 +0000
committerMike Frysinger <vapier@gentoo.org>2005-09-08 00:19:37 +0000
commitbf37dc9c2e14e1c7e5c14de4d745abd191119854 (patch)
tree17f0cdb9228adb532d472d6411bb96462dd51300
parent6139aa18508e45b1529de87e884d25fc2400e1f9 (diff)
downloadbuildroot-novena-bf37dc9c2e14e1c7e5c14de4d745abd191119854.tar.gz
buildroot-novena-bf37dc9c2e14e1c7e5c14de4d745abd191119854.zip
grab some fixes from Gentoo to enable shared library support, add a jpeg-dirclean target, and cleanup the build in general
-rw-r--r--package/jpeg/jpeg-build.patch99
-rw-r--r--package/jpeg/jpeg-libtool.patch66
-rw-r--r--package/jpeg/jpeg.mk22
3 files changed, 175 insertions, 12 deletions
diff --git a/package/jpeg/jpeg-build.patch b/package/jpeg/jpeg-build.patch
new file mode 100644
index 000000000..9f3c5c2df
--- /dev/null
+++ b/package/jpeg/jpeg-build.patch
@@ -0,0 +1,99 @@
+- Respect options from configure (bindir/libdir/etc...)
+- Grab AR from the env instead of hardcoding to 'ar'
+- Fix install to respect $(DESTDIR)
+- Also install jpegint.h #64254
+
+--- jpeg/makefile.cfg
++++ jpeg/makefile.cfg
+@@ -11,13 +11,13 @@
+ # Where to install the programs and man pages.
+ prefix = @prefix@
+ exec_prefix = @exec_prefix@
+-bindir = $(exec_prefix)/bin
+-libdir = $(exec_prefix)/lib
+-includedir = $(prefix)/include
++bindir = @bindir@
++libdir = @libdir@
++includedir = @includedir@
+ binprefix =
+ manprefix =
+ manext = 1
+-mandir = $(prefix)/man/man$(manext)
++mandir = @mandir@/man$(manext)
+
+ # The name of your C compiler:
+ CC= @CC@
+@@ -60,7 +60,8 @@
+ # directory creation command
+ MKDIR= mkdir
+ # library (.a) file creation command
+-AR= ar rc
++AR = @AR@
++ARFLAGS = rc
+ # second step in .a creation (use "touch" if not needed)
+ AR2= @RANLIB@
+ # installation program
+@@ -163,7 +164,7 @@
+ # without libtool:
+ libjpeg.a: @A2K_DEPS@ $(LIBOBJECTS)
+ $(RM) libjpeg.a
+- $(AR) libjpeg.a $(LIBOBJECTS)
++ $(AR) $(ARFLAGS) libjpeg.a $(LIBOBJECTS)
+ $(AR2) libjpeg.a
+
+ # with libtool:
+@@ -191,25 +191,29 @@
+ # Installation rules:
+
+ install: cjpeg djpeg jpegtran rdjpgcom wrjpgcom @FORCE_INSTALL_LIB@
+- $(INSTALL_PROGRAM) cjpeg $(bindir)/$(binprefix)cjpeg
+- $(INSTALL_PROGRAM) djpeg $(bindir)/$(binprefix)djpeg
+- $(INSTALL_PROGRAM) jpegtran $(bindir)/$(binprefix)jpegtran
+- $(INSTALL_PROGRAM) rdjpgcom $(bindir)/$(binprefix)rdjpgcom
+- $(INSTALL_PROGRAM) wrjpgcom $(bindir)/$(binprefix)wrjpgcom
+- $(INSTALL_DATA) $(srcdir)/cjpeg.1 $(mandir)/$(manprefix)cjpeg.$(manext)
+- $(INSTALL_DATA) $(srcdir)/djpeg.1 $(mandir)/$(manprefix)djpeg.$(manext)
+- $(INSTALL_DATA) $(srcdir)/jpegtran.1 $(mandir)/$(manprefix)jpegtran.$(manext)
+- $(INSTALL_DATA) $(srcdir)/rdjpgcom.1 $(mandir)/$(manprefix)rdjpgcom.$(manext)
+- $(INSTALL_DATA) $(srcdir)/wrjpgcom.1 $(mandir)/$(manprefix)wrjpgcom.$(manext)
++ mkdir -p $(DESTDIR)$(bindir) $(DESTDIR)$(mandir)
++ $(INSTALL_PROGRAM) cjpeg $(DESTDIR)$(bindir)/$(binprefix)cjpeg
++ $(INSTALL_PROGRAM) djpeg $(DESTDIR)$(bindir)/$(binprefix)djpeg
++ $(INSTALL_PROGRAM) jpegtran $(DESTDIR)$(bindir)/$(binprefix)jpegtran
++ $(INSTALL_PROGRAM) rdjpgcom $(DESTDIR)$(bindir)/$(binprefix)rdjpgcom
++ $(INSTALL_PROGRAM) wrjpgcom $(DESTDIR)$(bindir)/$(binprefix)wrjpgcom
++ $(INSTALL_DATA) $(srcdir)/cjpeg.1 $(DESTDIR)$(mandir)/$(manprefix)cjpeg.$(manext)
++ $(INSTALL_DATA) $(srcdir)/djpeg.1 $(DESTDIR)$(mandir)/$(manprefix)djpeg.$(manext)
++ $(INSTALL_DATA) $(srcdir)/jpegtran.1 $(DESTDIR)$(mandir)/$(manprefix)jpegtran.$(manext)
++ $(INSTALL_DATA) $(srcdir)/rdjpgcom.1 $(DESTDIR)$(mandir)/$(manprefix)rdjpgcom.$(manext)
++ $(INSTALL_DATA) $(srcdir)/wrjpgcom.1 $(DESTDIR)$(mandir)/$(manprefix)wrjpgcom.$(manext)
+
+ install-lib: libjpeg.$(A) install-headers
+- $(INSTALL_LIB) libjpeg.$(A) $(libdir)/$(binprefix)libjpeg.$(A)
++ mkdir -p $(DESTDIR)$(libdir)
++ $(INSTALL_LIB) libjpeg.$(A) $(DESTDIR)$(libdir)/$(binprefix)libjpeg.$(A)
+
+ install-headers: jconfig.h
+- $(INSTALL_DATA) jconfig.h $(includedir)/jconfig.h
+- $(INSTALL_DATA) $(srcdir)/jpeglib.h $(includedir)/jpeglib.h
+- $(INSTALL_DATA) $(srcdir)/jmorecfg.h $(includedir)/jmorecfg.h
+- $(INSTALL_DATA) $(srcdir)/jerror.h $(includedir)/jerror.h
++ mkdir -p $(DESTDIR)$(includedir)
++ $(INSTALL_DATA) jconfig.h $(DESTDIR)$(includedir)/jconfig.h
++ $(INSTALL_DATA) $(srcdir)/jpegint.h $(DESTDIR)$(includedir)/jpegint.h
++ $(INSTALL_DATA) $(srcdir)/jpeglib.h $(DESTDIR)$(includedir)/jpeglib.h
++ $(INSTALL_DATA) $(srcdir)/jmorecfg.h $(DESTDIR)$(includedir)/jmorecfg.h
++ $(INSTALL_DATA) $(srcdir)/jerror.h $(DESTDIR)$(includedir)/jerror.h
+
+ clean:
+ $(RM) *.o *.lo libjpeg.a libjpeg.la
+--- jpeg/configure
++++ jpeg/configure
+@@ -1777,6 +1777,7 @@
+ s%@CPP@%$CPP%g
+ s%@INSTALL_PROGRAM@%$INSTALL_PROGRAM%g
+ s%@INSTALL_DATA@%$INSTALL_DATA%g
++s%@AR@%${AR-ar}%g
+ s%@RANLIB@%$RANLIB%g
+ s%@LIBTOOL@%$LIBTOOL%g
+ s%@O@%$O%g
diff --git a/package/jpeg/jpeg-libtool.patch b/package/jpeg/jpeg-libtool.patch
new file mode 100644
index 000000000..3c4b573e3
--- /dev/null
+++ b/package/jpeg/jpeg-libtool.patch
@@ -0,0 +1,66 @@
+--- jpeg/configure
++++ jpeg/configure
+@@ -1559,7 +1559,7 @@
+ if test "x$LTSTATIC" = xno; then
+ disable_static="--disable-static"
+ fi
+- $srcdir/ltconfig $disable_shared $disable_static $srcdir/ltmain.sh
++ $srcdir/ltconfig $disable_shared $disable_static $srcdir/ltmain.sh $CHOST
+ fi
+
+ # Select memory manager depending on user input.
+--- jpeg/ltconfig
++++ jpeg/ltconfig
+@@ -299,6 +299,7 @@
+ # Transform linux* to *-*-linux-gnu*, to support old configure scripts.
+ case "$host_os" in
+ linux-gnu*) ;;
++linux-uclibc*) ;;
+ linux*) host=`echo $host | sed 's/^\(.*-.*-linux\)\(.*\)$/\1-gnu\2/'`
+ esac
+
+@@ -553,7 +553,9 @@
+ # On HP-UX, both CC and GCC only warn that PIC is supported... then they
+ # create non-PIC objects. So, if there were any warnings, we assume that
+ # PIC is not supported.
++ # Make sure we only test warnings on HP-UX (pic_flag == +Z) or we can
++ # easily break Linux builds http://bugs.gentoo.org/70947
+- if test -s conftest.err; then
++ if test -s conftest.err -a "$pic_flag" = "+Z"; then
+ echo "$ac_t"no 1>&6
+ can_build_shared=no
+ pic_flag=
+@@ -1210,7 +1210,6 @@
+ else
+ # Only the GNU ld.so supports shared libraries on MkLinux.
+ case "$host_cpu" in
+- powerpc*) dynamic_linker=no ;;
+ *) dynamic_linker='Linux ld.so' ;;
+ esac
+ fi
+@@ -1259,6 +1260,25 @@
+ fi
+ ;;
+
++linux-uclibc*)
++ version_type=linux
++ need_lib_prefix=no
++ need_version=no
++ library_names_spec='${libname}${release}.so.$versuffix ${libname}${release}.so.$major $libname.so'
++ soname_spec='${libname}${release}.so.$major'
++ finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir'
++ shlibpath_var=LD_LIBRARY_PATH
++ shlibpath_overrides_runpath=no
++ deplibs_check_method=pass_all
++ # This implies no fast_install, which is unacceptable.
++ # Some rework will be needed to allow for fast_install
++ # before this can be enabled.
++ # Note: copied from linux-gnu, and may not be appropriate.
++ hardcode_into_libs=yes
++ # Assume using the uClibc dynamic linker.
++ dynamic_linker="uClibc ld.so"
++ ;;
++
+ netbsd* | openbsd*)
+ version_type=sunos
+ library_names_spec='${libname}${release}.so.$versuffix'
diff --git a/package/jpeg/jpeg.mk b/package/jpeg/jpeg.mk
index b8d852489..ce40a7719 100644
--- a/package/jpeg/jpeg.mk
+++ b/package/jpeg/jpeg.mk
@@ -32,6 +32,7 @@ jpeg-source: $(DL_DIR)/$(JPEG_SOURCE)
$(JPEG_DIR)/.unpacked: $(DL_DIR)/$(JPEG_SOURCE)
$(JPEG_CAT) $(DL_DIR)/$(JPEG_SOURCE) | tar -C $(BUILD_DIR) $(TAR_OPTIONS) -
+ toolchain/patch-kernel.sh $(JPEG_DIR) package/jpeg/ jpeg\*.patch
$(CONFIG_UPDATE) $(JPEG_DIR)
touch $(JPEG_DIR)/.unpacked
@@ -42,26 +43,19 @@ $(JPEG_DIR)/.configured: $(JPEG_DIR)/.unpacked
--target=$(GNU_TARGET_NAME) \
--host=$(GNU_TARGET_NAME) \
--build=$(GNU_HOST_NAME) \
- --prefix=/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 \
+ --prefix=$(STAGING_DIR) \
--enable-shared \
+ --enable-static \
);
- touch $(JPEG_DIR)/.configured
+ touch $(JPEG_DIR)/.configured
$(JPEG_DIR)/.libs/libjpeg.a: $(JPEG_DIR)/.configured
$(MAKE) -C $(JPEG_DIR) all
touch -c $(JPEG_DIR)/.libs/libjpeg.a
$(STAGING_DIR)/lib/libjpeg.a: $(JPEG_DIR)/.libs/libjpeg.a
- $(MAKE) -C $(JPEG_DIR) prefix=$(STAGING_DIR) exec_prefix=$(STAGING_DIR) install-headers install-lib
+ $(MAKE) -C $(JPEG_DIR) install-headers install-lib
+ rm $(STAGING_DIR)/lib/libjpeg.la
touch -c $(STAGING_DIR)/lib/libjpeg.a
$(TARGET_DIR)/usr/lib/libjpeg.a: $(STAGING_DIR)/lib/libjpeg.a
@@ -73,6 +67,10 @@ jpeg: uclibc $(TARGET_DIR)/usr/lib/libjpeg.a
jpeg-clean:
-$(MAKE) -C $(JPEG_DIR) clean
+
+jpeg-dirclean:
+ rm -rf $(JPEG_DIR)
+
#############################################################
#
# Toplevel Makefile options