neufeld / pandaseq

PAired-eND Assembler for DNA sequences
GNU General Public License v3.0
129 stars 24 forks source link

Installation errors on MacOS #16

Closed dylansmith17 closed 11 years ago

dylansmith17 commented 11 years ago

Hi,

I'm trying to install PANDAseq from source and have been getting tons and tons of errors. In brief, when trying to run

./autogen.sh I get the message

...
Makefile.am:4: Libtool library used but `LIBTOOL' is undefined
Makefile.am:4:   The usual way to define `LIBTOOL' is to add `LT_INIT'
Makefile.am:4:   to `configure.ac' and run `aclocal' and `autoconf' again.
Makefile.am:4:   If `LT_INIT' is in `configure.ac', make sure
Makefile.am:4:   its definition is in aclocal's search path.
autoreconf: automake failed with exit status: 1

I am not certain where in configure.ac I should add LT_INIT.

... and when trying to run ./configure I get the message

...
checking for bzlib.h... yes
checking for BZ2_bzDecompressInit in -lbz2... yes
configure: creating ./config.status
config.status: error: cannot find input file: `Makefile.in'

Any help would be appreciated. Thanks, Dylan

apmasell commented 11 years ago

I've added it to the configure.ac file. Try doing git pull then rerunning ./autogen.sh. What version of MacOS are you using? Also, can you check the versions of the AutoTools via:

libtool --version
autconfi --version
automake --version

Thanks.

dylansmith17 commented 11 years ago

I get:

autoconf (GNU Autoconf) 2.69
Copyright (C) 2012 Free Software Foundation, Inc.
License GPLv3+/Autoconf: GNU GPL version 3 or later

     automake (GNU automake) 1.11.6 Copyright (C) 2011 Free Software Foundation, Inc. License GPLv2+: GNU GPL version 2 or later http://gnu.org/licenses/gpl-2.0.html

libtool --version returns the following error:
libtool: unknown option character `-' in: --version

However I updated yesterday and it should be lib tool-2.4.

All autotools are installed in a root folder "devtools" I created yesterday. devtools is in my $PATH but I'm wondering if Pandaseq is still having trouble finding them. All internet research I've done about my Makefile.am:4 error message seems to suggest I don't have libtools installed, or at least in the right place.

Thanks for updating configure.ac. I got the new version and tried running ./autogen.sh again, this time I get a slightly different error message:

bio-kgp02:pandaseq peaylab$ ./autogen.sh
configure.ac:18: error: possibly undefined macro: AC_PROG_LIBTOOL
      If this token and others are legitimate, please use m4_pattern_allow.
      See the Autoconf documentation.
autoreconf: /sw/bin/autoconf-2.69 failed with exit status: 1

Thanks. -Dylan

dylansmith17 commented 11 years ago

Oh, and we're running MacOS X 10.8.3, mountain lion I believe. Just updated yesterday, but I was having problems with the install before the update, too.

dylansmith17 commented 11 years ago

Update:

I rearranged my path so that the most recent Autotools location was first in line and have made progress from there.

I ran

git clone http://github.com/neufeld/pandaseq.git/

and a Pandaseq folder downloaded to /Users/peaylab/pandaseq

then cd Pandaseq

Then when I ran './autogen.sh && ./configure && make && sudo make install' I get the following error messages:

bio-kgp02:pandaseq peaylab$ ./autogen.sh
configure.ac:16: warning: macro `AM_PROG_AR' not found in library
configure.ac:16: warning: macro `AM_PROG_AR' not found in library
Useless use of /d modifier in transliteration operator at /Users/peaylab/devtools/autotools-bin/share/automake-1.11/Automake/Wrap.pm line 58.

bio-kgp02:pandaseq peaylab$ sudo make install
Password:
make  install-am
  CCLD   after.la
Undefined symbols for architecture x86_64:
  "_panda_seqid_equal", referenced from:
      _after_LTX_precheck in after_la-after.o
  "_panda_seqid_parse", referenced from:
      _after_LTX_init in after_la-after.o
ld: symbol(s) not found for architecture x86_64
collect2: ld returned 1 exit status
make[1]: *** [after.la] Error 1
make: *** [install] Error 2

Running ./configure seems to return no error messages. It looks like ./autogen.sh made my Makefile.in despite returning errors.

apmasell commented 11 years ago

Hmm. If you have a combination of Apple's Xcode package, Fink, and custom installed versions, you're likely to get all kinds of wacky error as the AutoTools will have difficulty finding each other properly. This seems to be the source of AC_PROG_LIBTOOL.

As for the undefined symbols, try editing configure.ac and changing it to NO_UNDEFINED='-no-undefined -flat_namespace', then rerun the whole ./autogen.sh && ./configure && make. I no longer have access to a MacOS test environment, so I can't be sure this will work.

dylansmith17 commented 11 years ago

Yes, I agree about the versions: I suspect these problems are arising from incompatible dependency versions installed in disagreeable locations. I tried updating configure.ac again but still get the same errors.

Given what I gave you about my autotools versions, could you tell me which versions of automake, autoconf, libtools, and fink are necessary for the current Pandaseq version?

The 'Installation' page on this website says (under installing from source): "To build the source, zlib, bzip2, and libtool (include libltdl) are required." Should these dependencies be installed to my Fink folder? To the pandaseq folder? Or to a root directory like /sw or /sw/bin? Should the pandaseq folder be installed to the Fink folder or does it not matter?

I'm going to try deleting everything and starting over. Any insight into which versions I should install and where these folders should go in the first place would be most helpful. Thanks for your help,

-Dylan

apmasell commented 11 years ago

Frankly, I've never had access to Mountain Lion, so I'm not entirely sure. Automake 1.11.3 and Autoconf 2.68 are what I presently have, but it should work with older versions.

For building on Fink, I suggest you try installing those dependencies and automake and autoconf using Fink, then build with your path to have Fink first. It should pick /sw/bin/automake and friends at the newer Fink versions instead of the older ones living in /usr/bin. You can also try setting the environment variables AUTOCONF, AUTOHEADER, AUTOMAKE, and ACLOCAL to point to the newer versions (typically there is a link installed as autoconf-2.68 and so on).

dylansmith17 commented 11 years ago

I have those versions of Automake and Autoconf though I don't remember if I had Fink install them. Now when I try (passing fink install autoconf or fink install automaker) I get

Failed: no package found of specification 'automake'!

This morning I tried installing via MacPort on a new machine with theoretically none of this dependencies installed yet. I had MacPort install libtool and bzip2 as per the instructions, and also had it install autoconf. I can now get ./autogen.sh to run and complete but I get the following error when running ./configure

configure: error: Cannot link with libtool libs! (libltdl)

MacPort supposedly succesfully installed lib tools though I think maybe put it in a different folder (autoconf, automake-1.13, bzip2, glibtool, and glibtoolize are all in /opt/local/bin, which is in my PATH; however, nothing that says lib tool or libltdl are in that folder.)

If you have any other suggestions I'd appreciate them, though I realize that Mac is not what you typically use. Thanks.

apmasell commented 11 years ago

Hmm. That is perhaps a legitimate error. Consult the config.log to see why it couldn't link again libltdl. libltdl will live in /usr/lib, or /opt/local/lib.

I used to have access to a MacOS environment, but it's since been paved over with Linux exactly because MacOS has made many of these things extremely complicated.

dylansmith17 commented 11 years ago

Yes, something called libltdl.la, which appears to be an executable file, lives in /opt/local/lib.

/opt/local/lib is not in my $PATH, on /opt/local/bin is, which seems to contain only executable files. I will try adding /opt/local/bin to the $PATH and see if this works.

Not so impressive on Mac's part.

apmasell commented 11 years ago

Adding /opt/local/lib to the $PATH won't help. The compiler is going to try to link against libltdl which will till find via its usual means of looking in /lib and /usr/lib. Try setting the environment variable CPPFLAGS=-L/opt/local/lib to have that directory be searched by the compiler. Also, if you could post the section of configure.log that occurs where it is checking for lt_dlinit in -lltdl.

dylansmith17 commented 11 years ago

Do you mean just passing CPPFLAGS=-L/opt/local/lib in terminal? I'm afraid I don't know how to set an environment variable...

The message in configure.log that comes up is

configure:12273: checking for lt_dlinit in -lltdl configure:12298: gcc -o conftest -g -O2 -std=c99 -pedantic conftest.c -lltdl >&5 ld: library not found for -lltdl collect2: ld returned 1 exit status configure:12298: $? = 1 configure: failed program was: /* confdefs.h _/ #define PACKAGE_NAME "pandaseq" #define PACKAGE_TARNAME "pandaseq" #define PACKAGE_VERSION "2.4" #define PACKAGE_STRING "pandaseq 2.4" #define PACKAGE_BUGREPORT "andre@masella.name" #define PACKAGE_URL "" #define PACKAGE "pandaseq" #define VERSION "2.4" #define MAX_LEN 450 #define STDC_HEADERS 1 #define HAVE_SYS_TYPES_H 1 #define HAVE_SYS_STAT_H 1 #define HAVE_STDLIB_H 1 #define HAVE_STRING_H 1 #define HAVE_MEMORY_H 1 #define HAVE_STRINGS_H 1 #define HAVE_INTTYPES_H 1 #define HAVE_STDINT_H 1 #define HAVE_UNISTD_H 1 #define HAVE_DLFCN_H 1 #define LT_OBJDIR ".libs/" #define STDC_HEADERS 1 #define HAVE_PTHREAD 1 / end confdefs.h. /
/_ Override any GCC internal prototype to avoid an error.
Use char because int might match the return type of a GCC
builtin and then its argument prototype would still apply. */
#ifdef __cplusplus
extern "C"
#endif
char lt_dlinit ();
int
main ()
{
return lt_dlinit ();
;
return 0;
}

configure:12307: result: no configure:12317: error: Cannot link with libtool libs! (libltdl)

apmasell commented 11 years ago

Looking at that error, doing export CPPFLAGS=-L/opt/local/lib should make it go away.

dylansmith17 commented 11 years ago

Does it matter which folder I'm in when I pass that? Thanks.

apmasell commented 11 years ago

Nope. That will persist for as long as you keep that terminal open.

dylansmith17 commented 11 years ago

Hmm. Well we're getting somewhere. Doing ./autogen.sh && ./configure && make && sudo make install now returns error message:

dn0a20f31d:pandaseq peaylab$ export CPPFLAGS=-L/opt/local/lib dn0a20f31d:pandaseq peaylab$ ./autogen.sh && ./configure && make && sudo make install checking for a BSD-compatible install... /usr/bin/install -c checking whether build environment is sane... yes checking for a thread-safe mkdir -p... ./install-sh -c -d checking for gawk... no checking for mawk... no checking for nawk... no checking for awk... awk checking whether make sets $(MAKE)... yes checking whether make supports nested variables... yes checking for style of include used by make... GNU checking for gcc... gcc checking whether the C compiler works... yes checking for C compiler default output file name... a.out checking for suffix of executables... checking whether we are cross compiling... no checking for suffix of object files... o checking whether we are using the GNU C compiler... yes checking whether gcc accepts -g... yes checking for gcc option to accept ISO C89... none needed checking dependency style of gcc... gcc3 checking for ar... ar checking the archiver (ar) interface... ar checking whether gcc and cc understand -c and -o together... yes checking build system type... x86_64-apple-darwin12.2.0 checking host system type... x86_64-apple-darwin12.2.0 checking how to print strings... printf checking for a sed that does not truncate output... /usr/bin/sed checking for grep that handles long lines and -e... /usr/bin/grep checking for egrep... /usr/bin/grep -E checking for fgrep... /usr/bin/grep -F checking for ld used by gcc... /usr/llvm-gcc-4.2/libexec/gcc/i686-apple-darwin11/4.2.1/ld checking if the linker (/usr/llvm-gcc-4.2/libexec/gcc/i686-apple-darwin11/4.2.1/ld) is GNU ld... no checking for BSD- or MS-compatible name lister (nm)... /usr/bin/nm checking the name lister (/usr/bin/nm) interface... BSD nm checking whether ln -s works... yes checking the maximum length of command line arguments... 196608 checking whether the shell understands some XSI constructs... yes checking whether the shell understands "+="... yes checking how to convert x86_64-apple-darwin12.2.0 file names to x86_64-apple-darwin12.2.0 format... func_convert_file_noop checking how to convert x86_64-apple-darwin12.2.0 file names to toolchain format... func_convert_file_noop checking for /usr/llvm-gcc-4.2/libexec/gcc/i686-apple-darwin11/4.2.1/ld option to reload object files... -r checking for objdump... no checking how to recognize dependent libraries... pass_all checking for dlltool... no checking how to associate runtime and link libraries... printf %s\n checking for archiver @FILE support... no checking for strip... strip checking for ranlib... ranlib checking command to parse /usr/bin/nm output from gcc object... ok checking for sysroot... no checking for mt... no checking if : is a manifest tool... no checking for dsymutil... dsymutil checking for nmedit... nmedit checking for lipo... lipo checking for otool... otool checking for otool64... no checking for -single_module linker flag... yes checking for -exported_symbols_list linker flag... yes checking for -force_load linker flag... yes checking how to run the C preprocessor... gcc -E checking for ANSI C header files... yes checking for sys/types.h... yes checking for sys/stat.h... yes checking for stdlib.h... yes checking for string.h... yes checking for memory.h... yes checking for strings.h... yes checking for inttypes.h... yes checking for stdint.h... yes checking for unistd.h... yes checking for dlfcn.h... yes checking for objdir... .libs checking if gcc supports -fno-rtti -fno-exceptions... no checking for gcc option to produce PIC... -fno-common -DPIC checking if gcc PIC flag -fno-common -DPIC works... yes checking if gcc static flag -static works... no checking if gcc supports -c -o file.o... yes checking if gcc supports -c -o file.o... (cached) yes checking whether the gcc linker (/usr/llvm-gcc-4.2/libexec/gcc/i686-apple-darwin11/4.2.1/ld) supports shared libraries... yes checking dynamic linker characteristics... darwin12.2.0 dyld checking how to hardcode library paths into programs... immediate checking whether stripping libraries is possible... yes checking if libtool supports shared libraries... yes checking whether to build shared libraries... yes checking whether to build static libraries... yes checking whether compiler accepts "-std=c99 -pedantic"... yes checking for ANSI C header files... (cached) yes checking whether make supports nested variables... (cached) yes checking for module flags... -no-undefined checking for the pthreads library -lpthreads... no checking whether pthreads work without any flags... yes checking whether pthreads work with -Kthread... yes checking whether pthreads work with -kthread... yes checking for the pthreads library -llthread... no checking whether pthreads work with -pthread... yes checking whether pthreads work with -pthreads... yes checking whether pthreads work with -mthreads... no checking for the pthreads library -lpthread... yes checking whether pthreads work with --thread-safe... no checking whether pthreads work with -mt... no checking for the pthreads library -lpthreadGC2... no checking for joinable pthread attribute... PTHREAD_CREATE_JOINABLE checking if more special flags are required for pthreads... no checking for cc_r... gcc checking for lt_dlinit in -lltdl... yes checking math.h usability... yes checking math.h presence... yes checking for math.h... yes checking for pow in -lm... yes checking zlib.h usability... yes checking zlib.h presence... yes checking for zlib.h... yes checking for gzopen in -lz... yes checking bzlib.h usability... yes checking bzlib.h presence... yes checking for bzlib.h... yes checking for BZ2_bzDecompressInit in -lbz2... yes checking that generated files are newer than configure... done configure: creating ./config.status config.status: creating Makefile config.status: creating pandaseq-2.pc config.status: creating pandaseq-2.vapi config.status: creating pandaxs config.status: creating config.h config.status: config.h is unchanged config.status: executing depfiles commands config.status: executing libtool commands CCLD mktable ld: library not found for -lltdl collect2: ld returned 1 exit status make: *\ [mktable] Error 1

Doesn't stop at "cannot connect with libtools" anymore.

apmasell commented 11 years ago

Try also export LD_FLAGS=-L/opt/local/lib and just do make.

dylansmith17 commented 11 years ago

dn0a20f31d:pandaseq peaylab$ export LD_FLAGS=-L/opt/local/lib dn0a20f31d:pandaseq peaylab$ make CCLD mktable ld: library not found for -lltdl collect2: ld returned 1 exit status make: *\ [mktable] Error 1

Hmm... I guess the make seems to be the problem. Thanks for still trying.

dylansmith17 commented 11 years ago

Yes, it's the make command. ./autogen.sh && ./configure returns no errors.

apmasell commented 11 years ago

Sorry export LDFLAGS=L/opt/local/lib without an underscore. And it's probably best to redo the whole string of commands.

dylansmith17 commented 11 years ago

This time I get this from the log:

configure:2272: checking for a BSD-compatible install configure:2340: result: /usr/bin/install -c configure:2351: checking whether build environment is sane configure:2406: result: yes configure:2557: checking for a thread-safe mkdir -p configure:2596: result: ./install-sh -c -d configure:2603: checking for gawk configure:2633: result: no configure:2603: checking for mawk configure:2633: result: no configure:2603: checking for nawk configure:2633: result: no configure:2603: checking for awk configure:2619: found /usr/bin/awk configure:2630: result: awk configure:2641: checking whether make sets $(MAKE) configure:2663: result: yes configure:2692: checking whether make supports nested variables configure:2709: result: yes configure:2830: checking for style of include used by make configure:2858: result: GNU configure:2929: checking for gcc configure:2945: found /usr/bin/gcc configure:2956: result: gcc configure:3185: checking for C compiler version configure:3194: gcc --version >&5 i686-apple-darwin11-llvm-gcc-4.2 (GCC) 4.2.1 (Based on Apple Inc. build 5658) (LLVM build 2336.11.00) Copyright (C) 2007 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

configure:3205: $? = 0 configure:3194: gcc -v >&5 Using built-in specs. Target: i686-apple-darwin11 Configured with: /private/var/tmp/llvmgcc42/llvmgcc42-2336.11~182/src/configure --disable-checking --enable-werror --prefix=/Applications/Xcode.app/Contents/Developer/usr/llvm-gcc-4.2 --mandir=/share/man --enable-languages=c,objc,c++,obj-c++ --program-prefix=llvm- --program-transform-name=/^[cg][^.-]_$/s/$/-4.2/ --with-slibdir=/usr/lib --build=i686-apple-darwin11 --enable-llvm=/private/var/tmp/llvmgcc42/llvmgcc42-2336.11~182/dst-llvmCore/Developer/usr/local --program-prefix=i686-apple-darwin11- --host=x86_64-apple-darwin11 --target=i686-apple-darwin11 --with-gxx-include-dir=/usr/include/c++/4.2.1 Thread model: posix gcc version 4.2.1 (Based on Apple Inc. build 5658) (LLVM build 2336.11.00) configure:3205: $? = 0 configure:3194: gcc -V >&5 llvm-gcc-4.2: argument to `-V' is missing configure:3205: $? = 1 configure:3194: gcc -qversion >&5 i686-apple-darwin11-llvm-gcc-4.2: no input files configure:3205: $? = 1 configure:3225: checking whether the C compiler works configure:3247: gcc -L/opt/local/lib L/opt/local/lib conftest.c >&5 i686-apple-darwin11-llvm-gcc-4.2: L/opt/local/lib: No such file or directory configure:3251: $? = 1 configure:3289: result: no configure: failed program was: / confdefs.h / #define PACKAGE_NAME "pandaseq" #define PACKAGE_TARNAME "pandaseq" #define PACKAGE_VERSION "2.4" #define PACKAGE_STRING "pandaseq 2.4" #define PACKAGE_BUGREPORT "andre@masella.name" #define PACKAGE_URL "" #define PACKAGE "pandaseq" #define VERSION "2.4" #define MAX_LEN 450 /_ end confdefs.h. */
int
main ()
{
;
return 0;
}

configure:3294: error: in /Users/peaylab/pandaseq': configure:3296: error: C compiler cannot create executables Seeconfig.log' for more details

I have Apple Developer Tools and the latest XCode which supposedly has a C compliler. I also notice i686-apple-darwin11-llvm-gcc-4.2: L/opt/local/lib: No such file or directory

/opt/local/lib exists.

Thanks.

apmasell commented 11 years ago

Sorry. Typing is an issue today: export LDFLAGS=-L/opt/local/lib

dylansmith17 commented 11 years ago

I think we're still getting somewhere. Install goes smoothly until:

config.status: executing libtool commands CCLD mktable ./mktable make all-am CC libpandaseq_la-assembler.lo CC libpandaseq_la-assembler_support.lo CC libpandaseq_la-buffer.lo CC libpandaseq_la-fastq.lo CC libpandaseq_la-fileio.lo CC libpandaseq_la-idset.lo CC libpandaseq_la-misc.lo CC libpandaseq_la-module.lo module.c:19:18: error: ltdl.h: No such file or directory module.c:50: error: expected specifier-qualifier-list before 'lt_dlhandle' module.c: In function 'module_init': module.c:98: error: 'struct pandamodule' has no member named 'handle' module.c:99: warning: ISO C forbids nested functions module.c:99: error: expected '=', ',', ';', 'asm' or 'attribute' before '' token module.c:99: error: 'info' undeclared (first use in this function) module.c:99: error: (Each undeclared identifier is reported only once module.c:99: error: for each function it appears in.) module.c:99: warning: implicit declaration of function 'lt_dlgetinfo' module.c:99: error: 'struct panda_module' has no member named 'handle' module.c:100: error: 'struct panda_module' has no member named 'version' module.c:100: error: 'struct panda_module' has no member named 'version' module.c:100: error: 'struct panda_module' has no member named 'api' module.c:100: error: 'struct panda_module' has no member named 'args' module.c: In function 'panda_assembler_module_stats': module.c:112: error: 'struct panda_module' has no member named 'name' module.c: In function 'ref_ltdl': module.c:152: warning: implicit declaration of function 'lt_dlinit' module.c:158: warning: implicit declaration of function 'lt_dlgetsearchpath' module.c:158: warning: assignment makes pointer from integer without a cast module.c:160: warning: implicit declaration of function 'lt_dladdsearchdir' module.c:161: warning: implicit declaration of function 'lt_dlexit' module.c: At top level: module.c:187: error: 'LT_PATHSEP_CHAR' undeclared here (not in a function) module.c: In function 'panda_module_load': module.c:193: error: 'lt_dlhandle' undeclared (first use in this function) module.c:193: error: expected ';' before 'handle' module.c:211: error: 'handle' undeclared (first use in this function) module.c:211: warning: implicit declaration of function 'lt_dlopenext' module.c:213: warning: implicit declaration of function 'lt_dlerror' module.c:213: warning: format '%s' expects type 'char ', but argument 4 has type 'int' module.c:213: warning: format '%s' expects type 'char ', but argument 4 has type 'int' module.c:219: warning: implicit declaration of function 'lt_dlsym' module.c:219: warning: assignment makes pointer from integer without a cast module.c:221: warning: implicit declaration of function 'lt_dlclose' module.c:228: warning: assignment makes pointer from integer without a cast module.c:229: warning: assignment makes pointer from integer without a cast module.c:239: error: 'struct panda_module' has no member named 'api' module.c:240: warning: comparison between pointer and integer module.c:242: error: 'struct panda_module' has no member named 'args' module.c:243: error: 'struct panda_module' has no member named 'args' module.c:243: error: 'struct panda_module' has no member named 'args' module.c:243: error: 'struct panda_module' has no member named 'args' module.c:243: warning: passing argument 1 of 'builtin_memcpy_chk' discards qualifiers from pointer target type module.c:243: error: 'struct panda_module' has no member named 'args' module.c:243: warning: passing argument 1 of '__inline_memcpy_chk' discards qualifiers from pointer target type module.c:245: error: 'struct panda_module' has no member named 'args' module.c:249: error: 'struct panda_module' has no member named 'handle' module.c:250: error: 'struct panda_module' has no member named 'name' module.c:253: error: 'struct panda_module' has no member named 'version' module.c:254: warning: assignment makes pointer from integer without a cast module.c:255: warning: assignment makes pointer from integer without a cast module.c: In function 'panda_module_new': module.c:271: error: 'struct panda_module' has no member named 'api' module.c:272: error: 'struct panda_module' has no member named 'args' module.c:275: error: 'struct panda_module' has no member named 'handle' module.c:277: error: 'struct panda_module' has no member named 'name' module.c:278: error: 'struct panda_module' has no member named 'name' module.c:278: error: 'struct panda_module' has no member named 'name' module.c:278: error: 'struct panda_module' has no member named 'name' module.c:278: warning: passing argument 1 of 'builtin_memcpy_chk' discards qualifiers from pointer target type module.c:278: error: 'struct panda_module' has no member named 'name' module.c:278: warning: passing argument 1 of '__inline_memcpy_chk' discards qualifiers from pointer target type module.c:282: error: 'struct panda_module' has no member named 'version' module.c: In function 'panda_module_unref': module.c:313: error: 'struct panda_module' has no member named 'name' module.c:314: error: 'struct panda_module' has no member named 'name' module.c:314: warning: passing argument 1 of 'free' discards qualifiers from pointer target type module.c:315: error: 'struct panda_module' has no member named 'args' module.c:316: error: 'struct panda_module' has no member named 'args' module.c:316: warning: passing argument 1 of 'free' discards qualifiers from pointer target type module.c:317: error: 'struct panda_module' has no member named 'handle' module.c:318: error: 'struct panda_module' has no member named 'handle' module.c: In function 'panda_module_get_name': module.c:327: error: 'struct panda_module' has no member named 'name' module.c: In function 'panda_module_get_args': module.c:333: error: 'struct panda_module' has no member named 'args' module.c: In function 'panda_module_get_api': module.c:339: error: 'struct panda_module' has no member named 'api' module.c:339: warning: return makes integer from pointer without a cast module.c: In function 'panda_module_get_version': module.c:345: error: 'struct panda_module' has no member named 'version' module.c:345: error: 'struct panda_module' has no member named 'version' module.c:345: warning: pointer/integer type mismatch in conditional expression module.c: In function 'panda_module_get_description': module.c:352: warning: ISO C forbids nested functions module.c:352: error: expected '=', ',', ';', 'asm' or 'attribute' before '_' token module.c:352: error: 'info' undeclared (first use in this function) module.c:353: error: 'struct panda_module' has no member named 'handle' module.c:355: error: 'struct panda_module' has no member named 'handle' module.c:356: error: 'struct panda_module' has no member named 'handle' module.c:356: warning: assignment makes pointer from integer without a cast module.c: In function 'panda_module_getusage': module.c:364: warning: ISO C forbids nested functions module.c:364: error: expected '=', ',', ';', 'asm' or 'attribute' before '' token module.c:364: error: 'info' undeclared (first use in this function) module.c:365: error: 'struct panda_module' has no member named 'handle' module.c:367: error: 'struct panda_module' has no member named 'handle' module.c:368: error: 'struct panda_module' has no member named 'handle' module.c:368: warning: assignment makes pointer from integer without a cast module.c: In function 'panda_assembler_add_module': module.c:384: error: 'struct pandamodule' has no member named 'args' module.c:384: warning: passing argument 1 of 'module->init' discards qualifiers from pointer target type make[1]: ** [libpandaseq_la-module.lo] Error 1 make: *\ [all] Error 2

apmasell commented 11 years ago

Check that /opt/local/include/ltdl.h does indeed exist and try it with export CPPFLAGS=-I/opt/local/include.

dylansmith17 commented 11 years ago

/opt/local/include/ltdl.h does exist right where it should. Now I get this:

dn0a20f31d:pandaseq peaylab$ export CPPFLAGS=-I/opt/local/include dn0a20f31d:pandaseq peaylab$ ./autogen.sh && ./configure && make && sudo make install checking for a BSD-compatible install... /usr/bin/install -c checking whether build environment is sane... yes checking for a thread-safe mkdir -p... ./install-sh -c -d checking for gawk... no checking for mawk... no checking for nawk... no checking for awk... awk checking whether make sets $(MAKE)... yes checking whether make supports nested variables... yes checking for style of include used by make... GNU checking for gcc... gcc checking whether the C compiler works... yes checking for C compiler default output file name... a.out checking for suffix of executables... checking whether we are cross compiling... no checking for suffix of object files... o checking whether we are using the GNU C compiler... yes checking whether gcc accepts -g... yes checking for gcc option to accept ISO C89... none needed checking dependency style of gcc... gcc3 checking for ar... ar checking the archiver (ar) interface... ar checking whether gcc and cc understand -c and -o together... yes checking build system type... x86_64-apple-darwin12.2.0 checking host system type... x86_64-apple-darwin12.2.0 checking how to print strings... printf checking for a sed that does not truncate output... /usr/bin/sed checking for grep that handles long lines and -e... /usr/bin/grep checking for egrep... /usr/bin/grep -E checking for fgrep... /usr/bin/grep -F checking for ld used by gcc... /usr/llvm-gcc-4.2/libexec/gcc/i686-apple-darwin11/4.2.1/ld checking if the linker (/usr/llvm-gcc-4.2/libexec/gcc/i686-apple-darwin11/4.2.1/ld) is GNU ld... no checking for BSD- or MS-compatible name lister (nm)... /usr/bin/nm checking the name lister (/usr/bin/nm) interface... BSD nm checking whether ln -s works... yes checking the maximum length of command line arguments... 196608 checking whether the shell understands some XSI constructs... yes checking whether the shell understands "+="... yes checking how to convert x86_64-apple-darwin12.2.0 file names to x86_64-apple-darwin12.2.0 format... func_convert_file_noop checking how to convert x86_64-apple-darwin12.2.0 file names to toolchain format... func_convert_file_noop checking for /usr/llvm-gcc-4.2/libexec/gcc/i686-apple-darwin11/4.2.1/ld option to reload object files... -r checking for objdump... no checking how to recognize dependent libraries... pass_all checking for dlltool... no checking how to associate runtime and link libraries... printf %s\n checking for archiver @FILE support... no checking for strip... strip checking for ranlib... ranlib checking command to parse /usr/bin/nm output from gcc object... ok checking for sysroot... no checking for mt... no checking if : is a manifest tool... no checking for dsymutil... dsymutil checking for nmedit... nmedit checking for lipo... lipo checking for otool... otool checking for otool64... no checking for -single_module linker flag... yes checking for -exported_symbols_list linker flag... yes checking for -force_load linker flag... yes checking how to run the C preprocessor... gcc -E checking for ANSI C header files... yes checking for sys/types.h... yes checking for sys/stat.h... yes checking for stdlib.h... yes checking for string.h... yes checking for memory.h... yes checking for strings.h... yes checking for inttypes.h... yes checking for stdint.h... yes checking for unistd.h... yes checking for dlfcn.h... yes checking for objdir... .libs checking if gcc supports -fno-rtti -fno-exceptions... no checking for gcc option to produce PIC... -fno-common -DPIC checking if gcc PIC flag -fno-common -DPIC works... yes checking if gcc static flag -static works... no checking if gcc supports -c -o file.o... yes checking if gcc supports -c -o file.o... (cached) yes checking whether the gcc linker (/usr/llvm-gcc-4.2/libexec/gcc/i686-apple-darwin11/4.2.1/ld) supports shared libraries... yes checking dynamic linker characteristics... darwin12.2.0 dyld checking how to hardcode library paths into programs... immediate checking whether stripping libraries is possible... yes checking if libtool supports shared libraries... yes checking whether to build shared libraries... yes checking whether to build static libraries... yes checking whether compiler accepts "-std=c99 -pedantic"... yes checking for ANSI C header files... (cached) yes checking whether make supports nested variables... (cached) yes checking for module flags... -no-undefined checking for the pthreads library -lpthreads... no checking whether pthreads work without any flags... yes checking whether pthreads work with -Kthread... yes checking whether pthreads work with -kthread... yes checking for the pthreads library -llthread... no checking whether pthreads work with -pthread... yes checking whether pthreads work with -pthreads... yes checking whether pthreads work with -mthreads... no checking for the pthreads library -lpthread... yes checking whether pthreads work with --thread-safe... no checking whether pthreads work with -mt... no checking for the pthreads library -lpthreadGC2... no checking for joinable pthread attribute... PTHREAD_CREATE_JOINABLE checking if more special flags are required for pthreads... no checking for cc_r... gcc checking for lt_dlinit in -lltdl... yes checking math.h usability... yes checking math.h presence... yes checking for math.h... yes checking for pow in -lm... yes checking zlib.h usability... yes checking zlib.h presence... yes checking for zlib.h... yes checking for gzopen in -lz... yes checking bzlib.h usability... yes checking bzlib.h presence... yes checking for bzlib.h... yes checking for BZ2_bzDecompressInit in -lbz2... yes checking that generated files are newer than configure... done configure: creating ./config.status config.status: creating Makefile config.status: creating pandaseq-2.pc config.status: creating pandaseq-2.vapi config.status: creating pandaxs config.status: creating config.h config.status: config.h is unchanged config.status: executing depfiles commands config.status: executing libtool commands make all-am CC libpandaseq_la-module.lo CC libpandaseq_la-mux.lo CC libpandaseq_la-nt.lo CC libpandaseq_la-output.lo CC libpandaseq_la-seqid.lo CC libpandaseq_la-table.lo CCLD libpandaseq.la CC after_la-after.lo CC after_la-panda_api.lo CCLD after.la Undefined symbols for architecture x86_64: "_panda_seqid_equal", referenced from: _after_LTX_precheck in after_la-after.o "_panda_seqid_parse", referenced from: _after_LTX_init in after_la-after.o ld: symbol(s) not found for architecture x86_64 collect2: ld returned 1 exit status make[1]: * [after.la] Error 1 make: * [all] Error 2

apmasell commented 11 years ago

Does this still have the -flat_namespace change from above?

dylansmith17 commented 11 years ago

In the configure.ac file? No... actually it's a new one since I switched machines to start over. There are a number of places in configure.ac that say NO_UNDEFINED= here:

MODULE_CPPFLAGS="$CPPFLAGS" MODULE_CFLAGS="$CFLAGS" MODULE_LIBS="$LIBS" AC_MSGCHECKING([for module flags]) case "$host" in -mingw_) NO_UNDEFINED='-no-undefined' MODULE_LDFLAGS="$LDFLAGS -Wl,-static" MOD_LIBTOOL=libtool ;; openbsd|freebsd) NO_UNDEFINED='' MOD_LIBTOOL=libtool ;; darwin|Darwin) os_win32=no NO_UNDEFINED='-no-undefined' MOD_LIBTOOL=glibtool ;; *) os_win32=no NO_UNDEFINED='-no-undefined' MOD_LIBTOOL=libtool ;; esac AC_MSG_RESULT([$NO_UNDEFINED]) AC_SUBST(NO_UNDEFINED) AC_SUBST(MOD_LIBTOOL) AC_SUBST(MODULE_CPPFLAGS) AC_SUBST(MODULE_CFLAGS) AC_SUBST(MODULE_LIBS)

Is there a specific one I should change to NO_UNDEFINED='-no-undefined -flat_namespace' ?

apmasell commented 11 years ago

The one after darwin.

dylansmith17 commented 11 years ago

configure.ac changed. Still get

config.status: executing libtool commands (CDPATH="${ZSH_VERSION+.}:" && cd . && /bin/sh /Users/peaylab/pandaseq/missing autoheader) rm -f stamp-h1 touch config.h.in cd . && /bin/sh ./config.status config.h config.status: creating config.h config.status: config.h is unchanged make all-am CCLD after.la Undefined symbols for architecture x86_64: "_panda_seqid_equal", referenced from: _after_LTX_precheck in after_la-after.o "_panda_seqid_parse", referenced from: _after_LTX_init in after_la-after.o ld: symbol(s) not found for architecture x86_64 collect2: ld returned 1 exit status make[1]: * [after.la] Error 1 make: * [all] Error 2

Thanks.

apmasell commented 11 years ago

Okay. If you could do V=1 make that would give me more debugging information. This component is not critical. We can turn it off if necessary, but I'd like to get to the bottom of it, if you have the patience.

agnino83 commented 11 years ago

Hi, convenient that you all are discussing this, I am having the identical issue. I have followed along your discussion and am now at the exact same point (running OSX 10.6.8), with the same error. Not to hijack your discussion here, but in case it is useful to have a second computer at the same point. Thanks for the discussion, Matt

apmasell commented 11 years ago

I have gotten access to a MacOS X machine, although it is Snow Leopard, it should yield the solution. I have updated the source, so do a git pull first. I made sure that /opt/local/bin was first in my path, and then did the ./autogen.sh && ./configure && make && sudo make install and that seems to have worked properly. Let me know.

dylansmith17 commented 11 years ago

When I try git pull I get the following message:

dn0a20f31d:pandaseq peaylab$ git pull
remote: Counting objects: 5, done.
remote: Compressing objects: 100% (1/1), done.
remote: Total 3 (delta 2), reused 3 (delta 2)
Unpacking objects: 100% (3/3), done.
From http://github.com/neufeld/pandaseq
   0f57504..87baf82  master     -> origin/master
Updating 0f57504..87baf82
error: Your local changes to the following files would be overwritten by merge:
    configure.ac
Please, commit your changes or stash them before you can merge.
Aborting

I assume this means the git pull did not work. Is there something else I should be doing, or something I need to change on my system? Sorry, I am new to this stuff.

/opt/local/bin is very first in my path. Is /opt/local/lib in your path? I think you said this shouldn't matter.

apmasell commented 11 years ago

You can do git checkout configure.ac && git pull to fix that. Directories that end in lib should never be in the path, but it won't hurt anything.

dylansmith17 commented 11 years ago

It worked! I am able to run pandaseq on this machine albeit I haven't tried any sequences yet. But the program opens. Thanks so much for your help. A few things:

Unfortunately this is installed on a machine with low computing power (I switched to a brand new machine to start over). The computer that we'd really like to install pandaseq on has Fink installed, not MacPort. Are the updates you made to source MacPort-specific, or could they work with Fink, too? Trying to decide whether I should try to delete Fink on the better machine and install MacPort and then work through everything we've done to this point...

apmasell commented 11 years ago

They should work on Fink as well, so long as the dependencies are available. There also a good chance that you can copy the installed binaries to the other machine, though you may have to bring /opt/local/lib/lib{z,bz2,ltdl}* along too.

dylansmith17 commented 11 years ago

Got it working on the other machine, too. I think your source updates helped a lot. Thanks again for all your help.

apmasell commented 11 years ago

No problem. I'm calling this fixed.