Hello community, here is the log from the commit of package exempi for openSUSE:Factory checked in at 2013-07-01 15:53:36 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/exempi (Old) and /work/SRC/openSUSE:Factory/.exempi.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "exempi" Changes: -------- --- /work/SRC/openSUSE:Factory/exempi/exempi.changes 2012-02-28 14:12:42.000000000 +0100 +++ /work/SRC/openSUSE:Factory/.exempi.new/exempi.changes 2013-07-01 15:53:37.000000000 +0200 @@ -1,0 +2,10 @@ +Sun Jun 30 15:22:26 UTC 2013 - [email protected] + +- Update to version 2.2.1: + + fdo#54011: Use POSIX API for files on MacOS. + + fdo#58175: Replace OS X FlatCarbon headers. + + Added a manpage for exempi(1). + + Added the -n option to the command line for arbitrary + namespaces. + +------------------------------------------------------------------- Old: ---- exempi-2.2.0.tar.bz2 New: ---- exempi-2.2.1.tar.bz2 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ exempi.spec ++++++ --- /var/tmp/diff_new_pack.0wyN2l/_old 2013-07-01 15:53:38.000000000 +0200 +++ /var/tmp/diff_new_pack.0wyN2l/_new 2013-07-01 15:53:38.000000000 +0200 @@ -1,7 +1,7 @@ # # spec file for package exempi # -# Copyright (c) 2012 SUSE LINUX Products GmbH, Nuernberg, Germany. +# Copyright (c) 2013 SUSE LINUX Products GmbH, Nuernberg, Germany. # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -18,7 +18,7 @@ Name: exempi Url: http://libopenraw.freedesktop.org/wiki/Exempi -Version: 2.2.0 +Version: 2.2.1 Release: 0 BuildRequires: boost-devel >= 1.33.0 BuildRequires: gcc-c++ @@ -52,8 +52,8 @@ %package -n libexempi-devel Summary: XMP support library Group: Development/Libraries/C and C++ -Requires: libexempi3 = %{version} Requires: glibc-devel +Requires: libexempi3 = %{version} %description -n libexempi-devel XMP parsing and IO library @@ -91,6 +91,7 @@ %defattr(-,root,root) %doc README COPYING ChangeLog %{_bindir}/exempi +%{_mandir}/man1/exempi.1%{?ext_man} %files -n libexempi-devel %defattr(-,root,root) ++++++ exempi-2.2.0.tar.bz2 -> exempi-2.2.1.tar.bz2 ++++++ ++++ 9592 lines of diff (skipped) ++++ retrying with extended exclude list diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/exempi-2.2.0/AUTHORS new/exempi-2.2.1/AUTHORS --- old/exempi-2.2.0/AUTHORS 2011-11-13 07:57:42.000000000 +0100 +++ new/exempi-2.2.1/AUTHORS 2013-05-26 00:04:34.000000000 +0200 @@ -10,4 +10,5 @@ Ian Jacobi Jason Kivlighn Michael Biebl <[email protected]> -Tim Mooney \ No newline at end of file +Tim Mooney +Misty De Meo diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/exempi-2.2.0/NEWS new/exempi-2.2.1/NEWS --- old/exempi-2.2.0/NEWS 2012-02-22 07:44:13.000000000 +0100 +++ new/exempi-2.2.1/NEWS 2013-06-30 03:40:02.000000000 +0200 @@ -1,3 +1,10 @@ +2.2.1 - 2013/06/29 + +- Bug #54011: Use POSIX API for files on MacOS. (Misty De Meo) +- Bug #58175: Replace OS X FlatCarbon headers. (Misty De Meo) +- Added a manpage for exempi(1). +- Added the -n option to the command line for arbitrary namespaces. + 2.2.0 - 2012/02/21 - New 'exempi' command line tool. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/exempi-2.2.0/README new/exempi-2.2.1/README --- old/exempi-2.2.0/README 2011-11-13 07:57:42.000000000 +0100 +++ new/exempi-2.2.1/README 2013-05-15 05:57:09.000000000 +0200 @@ -1,6 +1,8 @@ -exempi is a port of Adobe XMP SDK to work on UNIX and to be build with +exempi is a port of Adobe XMP SDK to work on UNIX and to be build with GNU automake. -It includes XMPCore and XMPFiles, libexempi, a C-based API and exempi a command line tool. + +It includes XMPCore and XMPFiles, libexempi, a C-based API and exempi +a command line tool. It is maintained by Hubert Figuiere <[email protected]> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/exempi-2.2.0/configure.ac new/exempi-2.2.1/configure.ac --- old/exempi-2.2.0/configure.ac 2011-11-13 07:57:42.000000000 +0100 +++ new/exempi-2.2.1/configure.ac 2013-05-25 23:48:42.000000000 +0200 @@ -8,7 +8,7 @@ dnl the same distribution terms as the rest of that program. AC_PREREQ(2.50) -AC_INIT(exempi,2.2.0) +AC_INIT(exempi,2.2.1) AM_INIT_AUTOMAKE([foreign dist-bzip2]) AM_MAINTAINER_MODE m4_ifndef([AM_SILENT_RULES], [m4_define([AM_SILENT_RULES],[])]) @@ -53,7 +53,8 @@ dnl 2.1.0 is the revision 5.2.0 dnl 2.1.1 is the revision 5.2.1 dnl 2.2.0 is the revision 5.2.2 -- no public API change -AC_SUBST([EXEMPI_REVISION], [2]) +dnl 2.2.1 is the revision 5.2.3 -- no public API change +AC_SUBST([EXEMPI_REVISION], [3]) AC_SUBST([EXEMPI_AGE], [2]) AC_SUBST([EXEMPI_CURRENT], [5]) AC_SUBST([EXEMPI_CURRENT_MIN], @@ -172,7 +173,6 @@ case $build_vendor in apple) EXEMPI_PLATFORM_DEF=MAC_ENV - CPPFLAGS="$CPPFLAGS -I/Developer/Headers/FlatCarbon" LDFLAGS="$LDFLAGS -framework CoreServices" ;; *) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/exempi-2.2.0/exempi/Makefile.am new/exempi-2.2.1/exempi/Makefile.am --- old/exempi-2.2.0/exempi/Makefile.am 2011-11-13 07:57:42.000000000 +0100 +++ new/exempi-2.2.1/exempi/Makefile.am 2013-05-25 23:58:57.000000000 +0200 @@ -1,7 +1,7 @@ # # exempi - Makefile.am # -# Copyright (C) 2007-2011 Hubert Figuiere +# Copyright (C) 2007-2013 Hubert Figuiere # All rights reserved. # # Redistribution and use in source and binary forms, with or without @@ -66,5 +66,7 @@ libexempi_la_LDFLAGS += -Wl,--retain-symbols-file=$(srcdir)/libexempi.sym endif +dist_man1_MANS = exempi.1 + EXTRA_DIST = libexempi.sym diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/exempi-2.2.0/exempi/exempi.1 new/exempi-2.2.1/exempi/exempi.1 --- old/exempi-2.2.0/exempi/exempi.1 1970-01-01 01:00:00.000000000 +0100 +++ new/exempi-2.2.1/exempi/exempi.1 2013-05-15 05:57:09.000000000 +0200 @@ -0,0 +1,40 @@ +.TH exempi 1 "February 10 2013" + +.SH NAME + +exempi - command line tool to manipulate XMP metadata + +.SH SYNTAX + +exempi { -h | [ -R ] [ -x ] [ { -w | -o <file> } ] [ { -g <prop_name> | -s <prop_name> -v <value> } ] } <files> + +.SH OPTIONS + +.IP "-h: show this help" +.IP "-R: don't reconcile" +.IP "-x: dump XML" +.IP "-X: file(s) is XMP" +.IP "-w: write in place. Only for -s. Not compatible with -o." +.IP "-o <file>: file to write the output to." +.IP "-n <ns> <prefix>: set the prefix for a namespace." +.IP "-g <prop_name>: retrieve the value with prop_name." +.IP "-s <prop_name> -v <value>: retrieve or get the value." +.IP "<files> the files to read from." + +.SH SECURITY + +The source code hasn't been audited for security. The command line tool doesn't have a strong input sanity checking easier. +.P +Be careful not to run the tool as super-user. Be careful if you decide to use it in an online (web) application. +.P +Patches and suggestions welcome. + +.SH AUHTORS + +Exempi is written by Hubert Figuiere +.P +It contains the XMP SDK written by Adobe Systems Inc. + +.SH LICENSE + +Exempi is licensed under the BSD license. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/exempi-2.2.0/exempi/main.cpp new/exempi-2.2.1/exempi/main.cpp --- old/exempi-2.2.0/exempi/main.cpp 2012-02-22 07:35:35.000000000 +0100 +++ new/exempi-2.2.1/exempi/main.cpp 2013-05-15 05:57:09.000000000 +0200 @@ -1,7 +1,8 @@ +/* -*- tab-width:2; c-basic-offset:2; indent-tabs-mode:nil; c-file-style:"stroustrup" -*- */ /* * exempi - exempi.cpp * - * Copyright (C) 2011 Hubert Figuiere + * Copyright (C) 2011-2013 Hubert Figuiere * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions @@ -40,6 +41,7 @@ #include <stdlib.h> #include <string> +#include <vector> #include <exempi/xmp.h> #include <exempi/xmp++.hpp> @@ -51,10 +53,12 @@ ACTION_GET }; -static void process_file(const char * filename, bool no_reconcile, bool is_an_xmp, - bool dump_xml, bool write_in_place, - int action, const std::string & value_name, - const std::string & prop_value, const std::string & output); +static void process_file(const char * filename, bool no_reconcile, + bool is_an_xmp, + bool dump_xml, bool write_in_place, + int action, const std::string & value_name, + const std::string & prop_value, + const std::string & output); /** fatal error in argument. Display and quit. */ @@ -73,21 +77,22 @@ fprintf(stderr, "exempi { -h | [ -R ] [ -x ] [ { -w | -o <file> } ] [ { -g <prop_name> | -s <prop_name> -v <value> } ] } <files>\n"); fprintf(stderr, "\t-h: show this help\n"); fprintf(stderr, "\t-R: don't reconcile\n"); - fprintf(stderr, "\t-x: dump XML\n"); + fprintf(stderr, "\t-x: dump XML packet.\n"); fprintf(stderr, "\t-X: file(s) is XMP\n"); fprintf(stderr, "\t-w: write in place. Only for -s. Not compatible with -o.\n"); fprintf(stderr, "\t-o <file>: file to write the output to.\n"); + fprintf(stderr, "\t-n <uri> <prefix>: create a new namespace.\n"); fprintf(stderr, "\t-g <prop_name>: retrieve the value with prop_name.\n"); fprintf(stderr, "\t-s <prop_name> -v <value>: retrieve or get the value.\n"); fprintf(stderr, "\t<files> the files to read from.\n"); - + exit(255); } int main(int argc, char **argv) { int ch; - + int action = ACTION_NONE; bool dont_reconcile = false; bool write_in_place = false; @@ -96,10 +101,11 @@ std::string output_file; std::string value_name; std::string prop_value; - - while((ch = getopt(argc, argv, "hRo:wxXg:s:v:")) != -1) { + std::vector<std::pair<std::string, std::string> > namespaces; + + while((ch = getopt(argc, argv, "hRo:wxXn:g:s:v:")) != -1) { switch(ch) { - + case 'R': dont_reconcile = true; break; @@ -122,6 +128,16 @@ action = ACTION_GET; value_name = optarg; break; + case 'n': + { + std::string ns = optarg; + std::string prefix = argv[optind]; + if (prefix[0] && prefix[0] != '-') { + namespaces.push_back(make_pair(ns, prefix)); + optind++; + } + break; + } case 's': if(!value_name.empty()) { usage(); @@ -141,57 +157,65 @@ break; } } - + argc -= optind; - argv += optind; - - if(optind == 1 || argc == 0) { - fatal_error("Missing input."); - return 1; - } - - if(write_in_place && (!output_file.empty() || action != ACTION_SET)) { - fatal_error("Need to write in place and output file are mutually exclusive."); - return 1; - } - - if(action == ACTION_SET && (!write_in_place && argc > 1)) { - fatal_error("Need to write in place for more than one file."); - return 1; - } + argv += optind; + + if(optind == 1 || argc == 0) { + fatal_error("Missing input."); + return 1; + } + + if(write_in_place && (!output_file.empty() || action != ACTION_SET)) { + fatal_error("Need to write in place and output file are mutually exclusive."); + return 1; + } + + if(action == ACTION_SET && (!write_in_place && argc > 1)) { + fatal_error("Need to write in place for more than one file."); + return 1; + } xmp_init(); + if(!namespaces.empty()) { + for (std::vector<std::pair<std::string, std::string> >::const_iterator iter + = namespaces.begin(); iter != namespaces.end(); + ++iter) { + xmp_register_namespace(iter->first.c_str(), + iter->second.c_str(), NULL); + } + } while(argc) { - - process_file(*argv, dont_reconcile, is_an_xmp, write_in_place, dump_xml, action, value_name, prop_value, output_file); - + + process_file(*argv, dont_reconcile, is_an_xmp, write_in_place, + dump_xml, action, value_name, prop_value, output_file); argc--; argv++; } - - xmp_terminate(); - return 0; + + xmp_terminate(); + return 0; } static XmpPtr get_xmp_from_sidecar(const char * filename, bool is_an_xmp) { struct stat s; - + if (stat(filename, &s) == -1) { perror("exempi:"); return NULL; } - + off_t size = s.st_size; FILE* file = fopen(filename, "r"); if (!file) { perror("exempi:"); return NULL; } - + char *buffer = (char*)malloc(size); size_t len = fread(buffer, 1, size, file); - + XmpPtr xmp = xmp_new_empty(); if(!xmp_parse(xmp, buffer, len)) { xmp_free(xmp); @@ -209,7 +233,7 @@ return get_xmp_from_sidecar(filename, is_an_xmp); } - xmp::ScopedPtr<XmpFilePtr> f(xmp_files_open_new(filename, + xmp::ScopedPtr<XmpFilePtr> f(xmp_files_open_new(filename, (XmpOpenFileOptions)(XMP_OPEN_READ | (no_reconcile ? XMP_OPEN_ONLYXMP : 0)))); if(f) { XmpPtr xmp = xmp_files_get_new_xmp(f); @@ -220,32 +244,33 @@ } /** dump the XMP xml to the output IO */ -static void dump_xmp(const char *filename, bool no_reconcile, +static void dump_xmp(const char *filename, bool no_reconcile, bool is_an_xmp, FILE *outio) { printf("dump_xmp for file %s\n", filename); xmp::ScopedPtr<XmpPtr> xmp(get_xmp_from_file(filename, no_reconcile, is_an_xmp)); - + xmp::ScopedPtr<XmpStringPtr> output(xmp_string_new()); - xmp_serialize_and_format(xmp, output, - XMP_SERIAL_OMITPACKETWRAPPER, + xmp_serialize_and_format(xmp, output, + XMP_SERIAL_OMITPACKETWRAPPER, 0, "\n", " ", 0); - + fprintf(outio, "%s", xmp_string_cstr(output)); } /** get an xmp prop and dump it to the output IO */ -static void get_xmp_prop(const char * filename, const std::string & value_name, bool no_reconcile, bool is_an_xmp, FILE *outio) +static void get_xmp_prop(const char * filename, const std::string & value_name, + bool no_reconcile, bool is_an_xmp, FILE *outio) { xmp::ScopedPtr<XmpPtr> xmp(get_xmp_from_file(filename, no_reconcile, is_an_xmp)); - + std::string prefix; size_t idx = value_name.find(':'); if(idx != std::string::npos) { prefix = std::string(value_name, 0, idx); } - + xmp::ScopedPtr<XmpStringPtr> property(xmp_string_new()); xmp::ScopedPtr<XmpStringPtr> ns(xmp_string_new()); xmp_prefix_namespace_uri(prefix.c_str(), ns); @@ -259,7 +284,7 @@ bool no_reconcile, bool is_an_xmp, bool write_in_place, FILE *outio) { xmp::ScopedPtr<XmpPtr> xmp(get_xmp_from_file(filename, no_reconcile, is_an_xmp)); - + std::string prefix; size_t idx = value_name.find(':'); if(idx != std::string::npos) { @@ -273,45 +298,45 @@ } if(write_in_place) { - xmp::ScopedPtr<XmpFilePtr> f(xmp_files_open_new(filename, - (XmpOpenFileOptions)(XMP_OPEN_FORUPDATE + xmp::ScopedPtr<XmpFilePtr> f(xmp_files_open_new(filename, + (XmpOpenFileOptions)(XMP_OPEN_FORUPDATE | (no_reconcile ? XMP_OPEN_ONLYXMP : 0)))); - + if(!xmp_files_can_put_xmp(f, xmp)) { - fprintf(stderr, "can put xmp error = %d\n", xmp_get_error()); + fprintf(stderr, "can put xmp error = %d\n", xmp_get_error()); } if(!xmp_files_put_xmp(f, xmp)) { - fprintf(stderr, "put xmp error = %d\n", xmp_get_error()); + fprintf(stderr, "put xmp error = %d\n", xmp_get_error()); } if(!xmp_files_close(f, XMP_CLOSE_SAFEUPDATE)) { fprintf(stderr, "close error = %d\n", xmp_get_error()); } - } + } } /** process a file with all the options */ static void process_file(const char * filename, bool no_reconcile, bool is_an_xmp, bool write_in_place, bool dump_xml, - int action, const std::string & value_name, + int action, const std::string & value_name, const std::string & prop_value, const std::string & output) { printf("processing file %s\n", filename); FILE *outio = stdout; - + bool needclose = false; if(!output.empty()) { outio = fopen(output.c_str(), "a+"); needclose = true; } - + switch (action) { case ACTION_NONE: if(dump_xml) { dump_xmp(filename, no_reconcile, is_an_xmp, outio); } - break; + break; case ACTION_SET: set_xmp_prop(filename, value_name, prop_value, no_reconcile, is_an_xmp, write_in_place, outio); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/exempi-2.2.0/m4/libtool.m4 new/exempi-2.2.1/m4/libtool.m4 --- old/exempi-2.2.0/m4/libtool.m4 2012-02-06 15:51:56.000000000 +0100 +++ new/exempi-2.2.1/m4/libtool.m4 2012-09-23 09:32:05.000000000 +0200 @@ -1,8 +1,8 @@ # libtool.m4 - Configure libtool for the host system. -*-Autoconf-*- # # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, -# 2006, 2007, 2008, 2009, 2010 Free Software Foundation, -# Inc. +# 2006, 2007, 2008, 2009, 2010, 2011 Free Software +# Foundation, Inc. # Written by Gordon Matzigkeit, 1996 # # This file is free software; the Free Software Foundation gives @@ -11,8 +11,8 @@ m4_define([_LT_COPYING], [dnl # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, -# 2006, 2007, 2008, 2009, 2010 Free Software Foundation, -# Inc. +# 2006, 2007, 2008, 2009, 2010, 2011 Free Software +# Foundation, Inc. # Written by Gordon Matzigkeit, 1996 # # This file is part of GNU Libtool. @@ -146,6 +146,8 @@ AC_REQUIRE([_LT_PREPARE_SED_QUOTE_VARS])dnl AC_REQUIRE([_LT_PROG_ECHO_BACKSLASH])dnl +_LT_DECL([], [PATH_SEPARATOR], [1], [The PATH separator for the build system])dnl +dnl _LT_DECL([], [host_alias], [0], [The host system])dnl _LT_DECL([], [host], [0])dnl _LT_DECL([], [host_os], [0])dnl @@ -637,7 +639,7 @@ m4_ifset([AC_PACKAGE_VERSION], [ AC_PACKAGE_VERSION]) configured by $[0], generated by m4_PACKAGE_STRING. -Copyright (C) 2010 Free Software Foundation, Inc. +Copyright (C) 2011 Free Software Foundation, Inc. This config.lt script is free software; the Free Software Foundation gives unlimited permision to copy, distribute and modify it." @@ -801,6 +803,7 @@ m4_case([$1], [C], [_LT_LANG(C)], [C++], [_LT_LANG(CXX)], + [Go], [_LT_LANG(GO)], [Java], [_LT_LANG(GCJ)], [Fortran 77], [_LT_LANG(F77)], [Fortran], [_LT_LANG(FC)], @@ -822,6 +825,31 @@ ])# _LT_LANG +m4_ifndef([AC_PROG_GO], [ +############################################################ +# NOTE: This macro has been submitted for inclusion into # +# GNU Autoconf as AC_PROG_GO. When it is available in # +# a released version of Autoconf we should remove this # +# macro and use it instead. # +############################################################ +m4_defun([AC_PROG_GO], +[AC_LANG_PUSH(Go)dnl +AC_ARG_VAR([GOC], [Go compiler command])dnl +AC_ARG_VAR([GOFLAGS], [Go compiler flags])dnl +_AC_ARG_VAR_LDFLAGS()dnl +AC_CHECK_TOOL(GOC, gccgo) +if test -z "$GOC"; then + if test -n "$ac_tool_prefix"; then + AC_CHECK_PROG(GOC, [${ac_tool_prefix}gccgo], [${ac_tool_prefix}gccgo]) + fi +fi +if test -z "$GOC"; then + AC_CHECK_PROG(GOC, gccgo, gccgo, false) +fi +])#m4_defun +])#m4_ifndef + + # _LT_LANG_DEFAULT_CONFIG # ----------------------- m4_defun([_LT_LANG_DEFAULT_CONFIG], @@ -852,6 +880,10 @@ m4_ifdef([LT_PROG_GCJ], [m4_define([LT_PROG_GCJ], defn([LT_PROG_GCJ])[LT_LANG(GCJ)])])])])]) +AC_PROVIDE_IFELSE([AC_PROG_GO], + [LT_LANG(GO)], + [m4_define([AC_PROG_GO], defn([AC_PROG_GO])[LT_LANG(GO)])]) + AC_PROVIDE_IFELSE([LT_PROG_RC], [LT_LANG(RC)], [m4_define([LT_PROG_RC], defn([LT_PROG_RC])[LT_LANG(RC)])]) @@ -954,7 +986,13 @@ $LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \ -dynamiclib -Wl,-single_module conftest.c 2>conftest.err _lt_result=$? - if test -f libconftest.dylib && test ! -s conftest.err && test $_lt_result = 0; then + # If there is a non-empty error log, and "single_module" + # appears in it, assume the flag caused a linker warning + if test -s conftest.err && $GREP single_module conftest.err; then + cat conftest.err >&AS_MESSAGE_LOG_FD + # Otherwise, if the output was created with a 0 exit code from + # the compiler, it worked. + elif test -f libconftest.dylib && test $_lt_result -eq 0; then lt_cv_apple_cc_single_mod=yes else cat conftest.err >&AS_MESSAGE_LOG_FD @@ -962,6 +1000,7 @@ rm -rf libconftest.dylib* rm -f conftest.* fi]) + AC_CACHE_CHECK([for -exported_symbols_list linker flag], [lt_cv_ld_exported_symbols_list], [lt_cv_ld_exported_symbols_list=no @@ -973,6 +1012,7 @@ [lt_cv_ld_exported_symbols_list=no]) LDFLAGS="$save_LDFLAGS" ]) + AC_CACHE_CHECK([for -force_load linker flag],[lt_cv_ld_force_load], [lt_cv_ld_force_load=no cat > conftest.c << _LT_EOF @@ -990,7 +1030,9 @@ echo "$LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a" >&AS_MESSAGE_LOG_FD $LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a 2>conftest.err _lt_result=$? - if test -f conftest && test ! -s conftest.err && test $_lt_result = 0 && $GREP forced_load conftest 2>&1 >/dev/null; then + if test -s conftest.err && $GREP force_load conftest.err; then + cat conftest.err >&AS_MESSAGE_LOG_FD + elif test -f conftest && test $_lt_result -eq 0 && $GREP forced_load conftest >/dev/null 2>&1 ; then lt_cv_ld_force_load=yes else cat conftest.err >&AS_MESSAGE_LOG_FD @@ -1035,8 +1077,8 @@ ]) -# _LT_DARWIN_LINKER_FEATURES -# -------------------------- +# _LT_DARWIN_LINKER_FEATURES([TAG]) +# --------------------------------- # Checks for linker and compiler features on darwin m4_defun([_LT_DARWIN_LINKER_FEATURES], [ @@ -1047,6 +1089,8 @@ _LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported if test "$lt_cv_ld_force_load" = "yes"; then _LT_TAGVAR(whole_archive_flag_spec, $1)='`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience ${wl}-force_load,$conv\"; done; func_echo_all \"$new_convenience\"`' + m4_case([$1], [F77], [_LT_TAGVAR(compiler_needs_object, $1)=yes], + [FC], [_LT_TAGVAR(compiler_needs_object, $1)=yes]) else _LT_TAGVAR(whole_archive_flag_spec, $1)='' fi @@ -1330,14 +1374,27 @@ CFLAGS="$SAVE_CFLAGS" fi ;; -sparc*-*solaris*) +*-*solaris*) # Find out which ABI we are using. echo 'int i;' > conftest.$ac_ext if AC_TRY_EVAL(ac_compile); then case `/usr/bin/file conftest.o` in *64-bit*) case $lt_cv_prog_gnu_ld in - yes*) LD="${LD-ld} -m elf64_sparc" ;; + yes*) + case $host in + i?86-*-solaris*) + LD="${LD-ld} -m elf_x86_64" + ;; + sparc*-*-solaris*) + LD="${LD-ld} -m elf64_sparc" + ;; + esac + # GNU ld 2.21 introduced _sol2 emulations. Use them if available. + if ${LD-ld} -V | grep _sol2 >/dev/null 2>&1; then + LD="${LD-ld}_sol2" + fi + ;; *) if ${LD-ld} -64 -r -o conftest2.o conftest.o >/dev/null 2>&1; then LD="${LD-ld} -64" @@ -1414,13 +1471,13 @@ if test -n "$RANLIB"; then case $host_os in openbsd*) - old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$oldlib" + old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$tool_oldlib" ;; *) - old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$oldlib" + old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$tool_oldlib" ;; esac - old_archive_cmds="$old_archive_cmds~\$RANLIB \$oldlib" + old_archive_cmds="$old_archive_cmds~\$RANLIB \$tool_oldlib" fi case $host_os in @@ -1600,6 +1657,11 @@ lt_cv_sys_max_cmd_len=196608 ;; + os2*) + # The test takes a long time on OS/2. + lt_cv_sys_max_cmd_len=8192 + ;; + osf*) # Dr. Hans Ekkehard Plesser reports seeing a kernel panic running configure # due to this test when exec_disable_arg_limit is 1 on Tru64. It is not @@ -1639,7 +1701,7 @@ # If test is not a shell built-in, we'll probably end up computing a # maximum length that is only half of the actual maximum length, but # we can't tell. - while { test "X"`func_fallback_echo "$teststring$teststring" 2>/dev/null` \ + while { test "X"`env echo "$teststring$teststring" 2>/dev/null` \ = "X$teststring$teststring"; } >/dev/null 2>&1 && test $i != 17 # 1/2 MB should be enough do @@ -2185,7 +2247,7 @@ case $host_os in aix3*) - version_type=linux + version_type=linux # correct to gnu/linux during the next big refactor library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a' shlibpath_var=LIBPATH @@ -2194,7 +2256,7 @@ ;; aix[[4-9]]*) - version_type=linux + version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no hardcode_into_libs=yes @@ -2259,7 +2321,7 @@ ;; bsdi[[45]]*) - version_type=linux + version_type=linux # correct to gnu/linux during the next big refactor need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' @@ -2398,7 +2460,7 @@ ;; dgux*) - version_type=linux + version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext' @@ -2406,10 +2468,6 @@ shlibpath_var=LD_LIBRARY_PATH ;; -freebsd1*) - dynamic_linker=no - ;; - freebsd* | dragonfly*) # DragonFly does not have aout. When/if they implement a new # versioning mechanism, adjust this. @@ -2417,7 +2475,7 @@ objformat=`/usr/bin/objformat` else case $host_os in - freebsd[[123]]*) objformat=aout ;; + freebsd[[23]].*) objformat=aout ;; *) objformat=elf ;; esac fi @@ -2435,7 +2493,7 @@ esac shlibpath_var=LD_LIBRARY_PATH case $host_os in - freebsd2*) + freebsd2.*) shlibpath_overrides_runpath=yes ;; freebsd3.[[01]]* | freebsdelf3.[[01]]*) @@ -2455,17 +2513,18 @@ ;; gnu*) - version_type=linux + version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; haiku*) - version_type=linux + version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no dynamic_linker="$host_os runtime_loader" @@ -2526,7 +2585,7 @@ ;; interix[[3-9]]*) - version_type=linux + version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' @@ -2542,7 +2601,7 @@ nonstopux*) version_type=nonstopux ;; *) if test "$lt_cv_prog_gnu_ld" = yes; then - version_type=linux + version_type=linux # correct to gnu/linux during the next big refactor else version_type=irix fi ;; @@ -2579,9 +2638,9 @@ dynamic_linker=no ;; -# This must be Linux ELF. +# This must be glibc/ELF. linux* | k*bsd*-gnu | kopensolaris*-gnu) - version_type=linux + version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' @@ -2648,7 +2707,7 @@ ;; newsos6) - version_type=linux + version_type=linux # correct to gnu/linux during the next big refactor library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes @@ -2717,7 +2776,7 @@ ;; solaris*) - version_type=linux + version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' @@ -2742,7 +2801,7 @@ ;; sysv4 | sysv4.3*) - version_type=linux + version_type=linux # correct to gnu/linux during the next big refactor library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH @@ -2766,7 +2825,7 @@ sysv4*MP*) if test -d /usr/nec ;then - version_type=linux + version_type=linux # correct to gnu/linux during the next big refactor library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}' soname_spec='$libname${shared_ext}.$major' shlibpath_var=LD_LIBRARY_PATH @@ -2797,7 +2856,7 @@ tpf*) # TPF is a cross-target only. Preferred cross-host = GNU/Linux. - version_type=linux + version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' @@ -2807,7 +2866,7 @@ ;; uts4*) - version_type=linux + version_type=linux # correct to gnu/linux during the next big refactor library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH @@ -3229,7 +3288,7 @@ lt_cv_deplibs_check_method=pass_all ;; -# This must be Linux ELF. +# This must be glibc/ELF. linux* | k*bsd*-gnu | kopensolaris*-gnu) lt_cv_deplibs_check_method=pass_all ;; @@ -3649,6 +3708,7 @@ # which start with @ or ?. lt_cv_sys_global_symbol_pipe="$AWK ['"\ " {last_section=section; section=\$ 3};"\ +" /^COFF SYMBOL TABLE/{for(i in hide) delete hide[i]};"\ " /Section length .*#relocs.*(pick any)/{hide[last_section]=1};"\ " \$ 0!~/External *\|/{next};"\ " / 0+ UNDEF /{next}; / UNDEF \([^|]\)*()/{next};"\ @@ -4233,7 +4293,9 @@ case $cc_basename in nvcc*) # Cuda Compiler Driver 2.2 _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Xlinker ' - _LT_TAGVAR(lt_prog_compiler_pic, $1)='-Xcompiler -fPIC' + if test -n "$_LT_TAGVAR(lt_prog_compiler_pic, $1)"; then + _LT_TAGVAR(lt_prog_compiler_pic, $1)="-Xcompiler $_LT_TAGVAR(lt_prog_compiler_pic, $1)" + fi ;; esac else @@ -4325,18 +4387,33 @@ ;; *) case `$CC -V 2>&1 | sed 5q` in - *Sun\ F* | *Sun*Fortran*) + *Sun\ Ceres\ Fortran* | *Sun*Fortran*\ [[1-7]].* | *Sun*Fortran*\ 8.[[0-3]]*) # Sun Fortran 8.3 passes all unrecognized flags to the linker _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' _LT_TAGVAR(lt_prog_compiler_wl, $1)='' ;; + *Sun\ F* | *Sun*Fortran*) + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ' + ;; *Sun\ C*) # Sun C 5.9 _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' ;; + *Intel*\ [[CF]]*Compiler*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' + ;; + *Portland\ Group*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fpic' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; esac ;; esac @@ -4496,7 +4573,9 @@ ;; cygwin* | mingw* | cegcc*) case $cc_basename in - cl*) ;; + cl*) + _LT_TAGVAR(exclude_expsyms, $1)='_NULL_IMPORT_DESCRIPTOR|_IMPORT_DESCRIPTOR_.*' + ;; *) _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/;s/^.*[[ ]]__nm__\([[^ ]]*\)[[ ]][[^ ]]*/\1 DATA/;/^I[[ ]]/d;/^[[AITW]][[ ]]/s/.* //'\'' | sort | uniq > $export_symbols' _LT_TAGVAR(exclude_expsyms, $1)=['[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname'] @@ -4521,7 +4600,6 @@ _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_direct_absolute, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)= - _LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)= _LT_TAGVAR(hardcode_libdir_separator, $1)= _LT_TAGVAR(hardcode_minus_L, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported @@ -4772,8 +4850,7 @@ xlf* | bgf* | bgxlf* | mpixlf*) # IBM XL Fortran 10.1 on PPC cannot create shared libs itself _LT_TAGVAR(whole_archive_flag_spec, $1)='--whole-archive$convenience --no-whole-archive' - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)= - _LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)='-rpath $libdir' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' _LT_TAGVAR(archive_cmds, $1)='$LD -shared $libobjs $deplibs $linker_flags -soname $soname -o $lib' if test "x$supports_anon_versioning" = xyes; then _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~ @@ -5068,6 +5145,7 @@ # The linker will not automatically build a static lib if we build a DLL. # _LT_TAGVAR(old_archive_from_new_cmds, $1)='true' _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes + _LT_TAGVAR(exclude_expsyms, $1)='_NULL_IMPORT_DESCRIPTOR|_IMPORT_DESCRIPTOR_.*' _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1,DATA/'\'' | $SED -e '\''/^[[AITW]][[ ]]/s/.*[[ ]]//'\'' | sort | uniq > $export_symbols' # Don't use ranlib _LT_TAGVAR(old_postinstall_cmds, $1)='chmod 644 $oldlib' @@ -5114,10 +5192,6 @@ _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; - freebsd1*) - _LT_TAGVAR(ld_shlibs, $1)=no - ;; - # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor # support. Future versions do this automatically, but an explicit c++rt0.o # does not break anything, and helps significantly (at the cost of a little @@ -5130,7 +5204,7 @@ ;; # Unfortunately, older versions of FreeBSD 2 do not have this feature. - freebsd2*) + freebsd2.*) _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_minus_L, $1)=yes @@ -5169,7 +5243,6 @@ fi if test "$with_gnu_ld" = no; then _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' - _LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)='+b $libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_direct_absolute, $1)=yes @@ -5611,9 +5684,6 @@ _LT_TAGDECL([], [hardcode_libdir_flag_spec], [1], [Flag to hardcode $libdir into a binary during linking. This must work even if $libdir does not exist]) -_LT_TAGDECL([], [hardcode_libdir_flag_spec_ld], [1], - [[If ld is used when linking, flag to hardcode $libdir into a binary - during linking. This must work even if $libdir does not exist]]) _LT_TAGDECL([], [hardcode_libdir_separator], [1], [Whether we need a single "-rpath" flag with a separated argument]) _LT_TAGDECL([], [hardcode_direct], [0], @@ -5771,7 +5841,6 @@ _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_direct_absolute, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)= -_LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)= _LT_TAGVAR(hardcode_libdir_separator, $1)= _LT_TAGVAR(hardcode_minus_L, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported @@ -6141,7 +6210,7 @@ esac ;; - freebsd[[12]]*) + freebsd2.*) # C++ shared libraries reported to be fairly broken before # switch to ELF _LT_TAGVAR(ld_shlibs, $1)=no @@ -6902,12 +6971,18 @@ } }; _LT_EOF +], [$1], [GO], [cat > conftest.$ac_ext <<_LT_EOF +package foo +func foo() { +} +_LT_EOF ]) _lt_libdeps_save_CFLAGS=$CFLAGS case "$CC $CFLAGS " in #( *\ -flto*\ *) CFLAGS="$CFLAGS -fno-lto" ;; *\ -fwhopr*\ *) CFLAGS="$CFLAGS -fno-whopr" ;; +*\ -fuse-linker-plugin*\ *) CFLAGS="$CFLAGS -fno-use-linker-plugin" ;; esac dnl Parse the compiler output and extract the necessary @@ -7104,7 +7179,6 @@ _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_direct_absolute, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)= -_LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)= _LT_TAGVAR(hardcode_libdir_separator, $1)= _LT_TAGVAR(hardcode_minus_L, $1)=no _LT_TAGVAR(hardcode_automatic, $1)=no @@ -7237,7 +7311,6 @@ _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_direct_absolute, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)= -_LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)= _LT_TAGVAR(hardcode_libdir_separator, $1)= _LT_TAGVAR(hardcode_minus_L, $1)=no _LT_TAGVAR(hardcode_automatic, $1)=no @@ -7424,6 +7497,77 @@ ])# _LT_LANG_GCJ_CONFIG +# _LT_LANG_GO_CONFIG([TAG]) +# -------------------------- +# Ensure that the configuration variables for the GNU Go compiler +# are suitably defined. These variables are subsequently used by _LT_CONFIG +# to write the compiler configuration to `libtool'. +m4_defun([_LT_LANG_GO_CONFIG], +[AC_REQUIRE([LT_PROG_GO])dnl +AC_LANG_SAVE + +# Source file extension for Go test sources. +ac_ext=go + +# Object file extension for compiled Go test sources. +objext=o +_LT_TAGVAR(objext, $1)=$objext + +# Code to be used in simple compile tests +lt_simple_compile_test_code="package main; func main() { }" + +# Code to be used in simple link tests +lt_simple_link_test_code='package main; func main() { }' + +# ltmain only uses $CC for tagged configurations so make sure $CC is set. +_LT_TAG_COMPILER + +# save warnings/boilerplate of simple test code +_LT_COMPILER_BOILERPLATE +_LT_LINKER_BOILERPLATE + +# Allow CC to be a program name with arguments. +lt_save_CC=$CC +lt_save_CFLAGS=$CFLAGS +lt_save_GCC=$GCC +GCC=yes +CC=${GOC-"gccgo"} +CFLAGS=$GOFLAGS +compiler=$CC +_LT_TAGVAR(compiler, $1)=$CC +_LT_TAGVAR(LD, $1)="$LD" +_LT_CC_BASENAME([$compiler]) + +# Go did not exist at the time GCC didn't implicitly link libc in. +_LT_TAGVAR(archive_cmds_need_lc, $1)=no + +_LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds +_LT_TAGVAR(reload_flag, $1)=$reload_flag +_LT_TAGVAR(reload_cmds, $1)=$reload_cmds + +## CAVEAT EMPTOR: +## There is no encapsulation within the following macros, do not change +## the running order or otherwise move them around unless you know exactly +## what you are doing... +if test -n "$compiler"; then + _LT_COMPILER_NO_RTTI($1) + _LT_COMPILER_PIC($1) + _LT_COMPILER_C_O($1) + _LT_COMPILER_FILE_LOCKS($1) + _LT_LINKER_SHLIBS($1) + _LT_LINKER_HARDCODE_LIBPATH($1) + + _LT_CONFIG($1) +fi + +AC_LANG_RESTORE + +GCC=$lt_save_GCC +CC=$lt_save_CC +CFLAGS=$lt_save_CFLAGS +])# _LT_LANG_GO_CONFIG + + # _LT_LANG_RC_CONFIG([TAG]) # ------------------------- # Ensure that the configuration variables for the Windows resource compiler @@ -7493,6 +7637,13 @@ dnl AC_DEFUN([LT_AC_PROG_GCJ], []) +# LT_PROG_GO +# ---------- +AC_DEFUN([LT_PROG_GO], +[AC_CHECK_TOOL(GOC, gccgo,) +]) + + # LT_PROG_RC # ---------- AC_DEFUN([LT_PROG_RC], diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/exempi-2.2.0/m4/ltoptions.m4 new/exempi-2.2.1/m4/ltoptions.m4 --- old/exempi-2.2.0/m4/ltoptions.m4 2012-02-06 15:51:56.000000000 +0100 +++ new/exempi-2.2.1/m4/ltoptions.m4 2012-09-23 09:32:05.000000000 +0200 @@ -326,9 +326,24 @@ # MODE is either `yes' or `no'. If omitted, it defaults to `both'. m4_define([_LT_WITH_PIC], [AC_ARG_WITH([pic], - [AS_HELP_STRING([--with-pic], + [AS_HELP_STRING([--with-pic@<:@=PKGS@:>@], [try to use only PIC/non-PIC objects @<:@default=use both@:>@])], - [pic_mode="$withval"], + [lt_p=${PACKAGE-default} + case $withval in + yes|no) pic_mode=$withval ;; + *) + pic_mode=default + # Look at the argument we got. We use all the common list separators. + lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," + for lt_pkg in $withval; do + IFS="$lt_save_ifs" + if test "X$lt_pkg" = "X$lt_p"; then + pic_mode=yes + fi + done + IFS="$lt_save_ifs" + ;; + esac], [pic_mode=default]) test -z "$pic_mode" && pic_mode=m4_default([$1], [default]) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/exempi-2.2.0/m4/ltversion.m4 new/exempi-2.2.1/m4/ltversion.m4 --- old/exempi-2.2.0/m4/ltversion.m4 2012-02-06 15:51:56.000000000 +0100 +++ new/exempi-2.2.1/m4/ltversion.m4 2012-09-23 09:32:05.000000000 +0200 @@ -9,15 +9,15 @@ # @configure_input@ -# serial 3293 ltversion.m4 +# serial 3337 ltversion.m4 # This file is part of GNU Libtool -m4_define([LT_PACKAGE_VERSION], [2.4]) -m4_define([LT_PACKAGE_REVISION], [1.3293]) +m4_define([LT_PACKAGE_VERSION], [2.4.2]) +m4_define([LT_PACKAGE_REVISION], [1.3337]) AC_DEFUN([LTVERSION_VERSION], -[macro_version='2.4' -macro_revision='1.3293' +[macro_version='2.4.2' +macro_revision='1.3337' _LT_DECL(, macro_version, 0, [Which release of libtool.m4 was used?]) _LT_DECL(, macro_revision, 0) ]) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/exempi-2.2.0/source/XMPFiles/FormatSupport/QuickTime_Support.cpp new/exempi-2.2.1/source/XMPFiles/FormatSupport/QuickTime_Support.cpp --- old/exempi-2.2.0/source/XMPFiles/FormatSupport/QuickTime_Support.cpp 2011-11-13 07:57:42.000000000 +0100 +++ new/exempi-2.2.1/source/XMPFiles/FormatSupport/QuickTime_Support.cpp 2013-05-25 23:48:43.000000000 +0200 @@ -10,7 +10,7 @@ #include "XMP_Environment.h" #if XMP_MacBuild - #include "Script.h" + #include <CoreServices/CoreServices.h> #else #include "MacScriptExtracts.h" #endif diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/exempi-2.2.0/source/XMPFiles/FormatSupport/Reconcile_Impl.cpp new/exempi-2.2.1/source/XMPFiles/FormatSupport/Reconcile_Impl.cpp --- old/exempi-2.2.0/source/XMPFiles/FormatSupport/Reconcile_Impl.cpp 2011-11-13 07:57:42.000000000 +0100 +++ new/exempi-2.2.1/source/XMPFiles/FormatSupport/Reconcile_Impl.cpp 2013-05-25 23:48:43.000000000 +0200 @@ -15,7 +15,7 @@ #if XMP_WinBuild #elif XMP_MacBuild - #include "UnicodeConverter.h" + #include <CoreServices/CoreServices.h> #endif // ================================================================================================= diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/exempi-2.2.0/source/XMPFiles/XMPFiles.hpp new/exempi-2.2.1/source/XMPFiles/XMPFiles.hpp --- old/exempi-2.2.0/source/XMPFiles/XMPFiles.hpp 2011-11-13 07:57:42.000000000 +0100 +++ new/exempi-2.2.1/source/XMPFiles/XMPFiles.hpp 2013-05-25 23:48:43.000000000 +0200 @@ -15,7 +15,7 @@ #define TXMP_STRING_TYPE std::string #include "XMP.hpp" -#if ! UNIX_ENV +#if ! (UNIX_ENV | MAC_ENV) typedef void * LFA_FileRef; #else typedef XMP_Int32 LFA_FileRef; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/exempi-2.2.0/source/XMPFiles/XMPFiles_Impl.cpp new/exempi-2.2.1/source/XMPFiles/XMPFiles_Impl.cpp --- old/exempi-2.2.0/source/XMPFiles/XMPFiles_Impl.cpp 2011-11-13 07:57:42.000000000 +0100 +++ new/exempi-2.2.1/source/XMPFiles/XMPFiles_Impl.cpp 2013-05-25 23:48:43.000000000 +0200 @@ -235,7 +235,7 @@ // *** Don't handle Windows specific info yet. - #elif XMP_MacBuild + #elif 0 // This Mac-specific code is no longer used, but retained to make merges easier IgnoreParam(filePos); @@ -286,10 +286,13 @@ } - #elif XMP_UNIXBuild + #elif XMP_UNIXBuild | XMP_MacBuild - IgnoreParam(filePos); IgnoreParam(copyMacRsrc); - // *** Can't use on Mac because of frigging CW POSIX header problems! + IgnoreParam(filePos); + + #if XMP_UNIXBuild + IgnoreParam(copyMacRsrc); + #endif // *** Don't handle UNIX specific info yet. @@ -299,6 +302,28 @@ if ( err != 0 ) XMP_Throw ( "CreateNewFile: stat failure", kXMPErr_ExternalFailure ); (void) chmod ( newPath, origInfo.st_mode ); // Ignore errors. + + #if XMP_MacBuild + if ( copyMacRsrc ) { // Copy the resource fork as a byte stream + LFA_FileRef origRsrcRef = 0; + LFA_FileRef copyRsrcRef = 0; + try { + origRsrcRef = LFA_OpenRsrc ( origPath, 'r' ); + XMP_Int64 rsrcSize = LFA_Measure ( origRsrcRef ); + if ( rsrcSize > 0 ) { + copyRsrcRef = LFA_OpenRsrc ( newPath, 'w' ); + // ! Resource fork small enough to not need abort checking. + LFA_Copy ( origRsrcRef, copyRsrcRef, rsrcSize, 0, 0 ); + LFA_Close ( copyRsrcRef ); + } + LFA_Close ( origRsrcRef ); + } catch ( ... ) { + if ( origRsrcRef != 0 ) LFA_Close ( origRsrcRef ); + if ( copyRsrcRef != 0 ) LFA_Close ( copyRsrcRef ); + throw; + } + } + #endif #endif diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/exempi-2.2.0/source/XMPFiles/XMPFiles_Impl.hpp new/exempi-2.2.1/source/XMPFiles/XMPFiles_Impl.hpp --- old/exempi-2.2.0/source/XMPFiles/XMPFiles_Impl.hpp 2011-11-13 07:57:42.000000000 +0100 +++ new/exempi-2.2.1/source/XMPFiles/XMPFiles_Impl.hpp 2013-05-25 23:48:43.000000000 +0200 @@ -34,7 +34,7 @@ #if XMP_WinBuild #define snprintf _snprintf #else - #if XMP_MacBuild + #if 0 // No longer needed, but retained to avoid merge conflicts #include <Files.h> #endif // POSIX headers for both Mac and generic UNIX. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/exempi-2.2.0/source/common/LargeFileAccess.cpp new/exempi-2.2.1/source/common/LargeFileAccess.cpp --- old/exempi-2.2.0/source/common/LargeFileAccess.cpp 2011-11-13 07:57:42.000000000 +0100 +++ new/exempi-2.2.1/source/common/LargeFileAccess.cpp 2013-05-25 23:48:43.000000000 +0200 @@ -13,7 +13,7 @@ // LFA implementations for Macintosh // ================================= -#if XMP_MacBuild +#if 0 // This Mac-specific code is no longer used, but retained to make merges easier static bool FileExists ( const char * filePath ) { @@ -505,7 +505,7 @@ // LFA implementations for POSIX // ============================= -#if XMP_UNIXBuild +#if XMP_UNIXBuild | XMP_MacBuild // --------------------------------------------------------------------------------------------- @@ -688,7 +688,7 @@ // --------------------------------------------------------------------------------------------- -#endif // XMP_UNIXBuild +#endif // XMP_UNIXBuild | XMP_MacBuild // ================================================================================================= @@ -798,7 +798,7 @@ //*** kind of a hack, TOTEST bool LFA_isEof( LFA_FileRef file ) { - #if XMP_MacBuild + #if 0 // This Mac-specific code is no longer used, but retained to make merges easier long refNum = (long)file; // ! Use long to avoid size warnings for SInt16 cast. XMP_Int64 position, length; @@ -825,7 +825,7 @@ return filesize == filepos; #endif - #if XMP_UNIXBuild + #if XMP_UNIXBuild | XMP_MacBuild int descr = (int)file; struct stat info; @@ -843,3 +843,34 @@ LFA_Read( file, &c, 1, true); return c; } + +#if XMP_MacBuild + + // --------------------------------------------------------------------------------------------- + + // On Mac OS X, POSIX open() can access resource forks by appending + // "/..namedfork/rsrc" to the end of the actual path + LFA_FileRef LFA_OpenRsrc ( const char* filePath, char mode ) + { + char suffix[18] = "/..namedfork/rsrc"; + char* rsrc = (char*) malloc((strlen(filePath)+strlen(suffix)+2) * sizeof(char)); + strcpy ( rsrc, filePath ) ; + strcat ( rsrc, suffix ); + + LFA_FileRef fileRef; + try { + // Once we assemble the name with resource fork, we can use + // the standard LFA_Open call to get it + fileRef = LFA_Open ( rsrc, mode ); + } catch ( ... ) { + LFA_Throw ( "LFA_OpenRsrc: open failure", kLFAErr_ExternalFailure ); + } + + free ( rsrc ); + + return fileRef; + } // LFA_OpenRsrc + + // --------------------------------------------------------------------------------------------- + +#endif // XMP_MacBuild diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/exempi-2.2.0/source/common/LargeFileAccess.hpp new/exempi-2.2.1/source/common/LargeFileAccess.hpp --- old/exempi-2.2.0/source/common/LargeFileAccess.hpp 2011-11-13 07:57:42.000000000 +0100 +++ new/exempi-2.2.1/source/common/LargeFileAccess.hpp 2013-05-25 23:48:43.000000000 +0200 @@ -18,7 +18,7 @@ #include <Windows.h> #define snprintf _snprintf #else - #if XMP_MacBuild + #if 0 // No longer needed, but retained to avoid merge conflicts #include <Files.h> #endif // POSIX headers for both Mac and generic UNIX. @@ -45,7 +45,7 @@ extern void LFA_Throw ( const char* msg, int id ); // Function needed for reuse of LFA code in various projects. -#if ! XMP_UNIXBuild +#if ! (XMP_UNIXBuild | XMP_MacBuild) typedef void * LFA_FileRef; #else typedef XMP_Int32 LFA_FileRef; -- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
