Configuring and Build Errors

Help
2005-09-11
2012-09-15
  • Hi, I'm compiling easyamp under yoper linux using the src.tar
    When I tried using ./configure, the script failed to find the faac, faad, and mp4v2, so I used the "--with-<component>=<system>" command. Now I'm informed that none of those components will be built. I decide to try make-ing anyways. I get an error of:
    maWriteMp4.c: In function OpenWriteMp4': maWriteMp4.c:231: error: too many arguments to functionMP4Create'
    maWriteMp4.c:249: warning: dereferencing type-punned pointer will break strict-aliasing rules
    make[1]: [obj/maWriteMp4.o] Error 1
    make[1]: Leaving directory `/root/MoreAmp-0.1.14/src'
    make:
    [moreamp] Error 2

    I would really like this to work, as I spent an hour downloading the file and that I really need a quality CD ripper that encodes to .m4a

    Thanks

     
    • job357
      job357
      2007-11-10

      Greetings,
      I am compiling MoreAmp with ./mamkunixwxall.sh script have run into the following errors, can some help in getting pass these errors:

      -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/pango-1.0 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/tmp/wxWidgets-2.8.6/lib/wx/include/gtk2-ansi-release-2.8 -I/tmp/wxWidgets-2.8.6/include -I/tmp/wxWidgets-2.8.6/contrib/include -D_FILE_OFFSET_BITS=64 -D_LARGE_FILES -DWXGTK -pthread -Wno-unknown-pragmas -DUNIX -Wno-strict-aliasing maUtils.cpp -o obj/maUtils.o
      g++ -o ../moreamp obj/maAudioMac.o obj/maAudioOSX.o obj/maAudioPA.o obj/maCdaOSX.o obj/maCdaUnix.o obj/maEqualizer.o obj/maGUIgtk.o obj/maMemFile.o obj/maPlayAac.o obj/maPlayMp4.o obj/maPlayAif.o obj/maPlayCda.o obj/maPlayer.o obj/maPlayFlac.o obj/maPlayMp3.o obj/maPlayOgg.o obj/maPlayWma.o obj/maSongList.o obj/maWriteAac.o obj/maWriteMp4.o obj/maWriteAif.o obj/maWriteFlac.o obj/maWriteMp3.o obj/maWriteOgg.o obj/maWriteWav.o obj/maWriteWma.o obj/maControls.o obj/maEffects.o obj/maGUInone.o obj/maGUIosx.o obj/maGUIwx.o obj/maUtils.o ../libs/libmad/libmad.a ../libs/lame/libmp3lame.a ../libs/libid3tag/libid3tag.a ../libs/libvorbis/libvorbisenc.a ../libs/libvorbis/libvorbisfile.a ../libs/libvorbis/libvorbis.a ../libs/libogg/libogg.a ../libs/flac/libFLAC.a ../libs/faad2/libfaad.a ../libs/faad2/libmp4ff.a ../libs/faac/libfaac.a ../libs/faac/libmp4v2.a ../libs/portaudio/libportaudio.a ../libs/cdparanoia/libcdda_paranoia.a ../libs/cdparanoia/libcdda_interface.a -lrt -lasound -lz -w -lgtk-x11-2.0 -lgdk-x11-2.0 -latk-1.0 -lgdk_pixbuf-2.0 -lpng12 -lm -lpangocairo-1.0 -lpango-1.0 -lcairo -lgobject-2.0 -lgmodule-2.0 -ldl -lglib-2.0 -L/tmp/wxWidgets-2.8.6/lib -pthread -Wl,-rpath,/tmp/wxWidgets-2.8.6/lib -lwx_gtk2_aui-2.8 -lwx_gtk2_xrc-2.8 -lwx_gtk2_qa-2.8 -lwx_gtk2_html-2.8 -lwx_gtk2_adv-2.8 -lwx_gtk2_core-2.8 -lwx_base_xml-2.8 -lwx_base_net-2.8 -lwx_base-2.8
      /usr/bin/ld: cannot find -lwx_gtk2_aui-2.8
      collect2: ld returned 1 exit status
      make[1]: [../moreamp] Error 1
      make[1]: Leaving directory `/tmp/MoreAmp-0.1.20/src'
      make:
      [moreamp] Error 2
      mamkunixwxall done
      Sat Nov 10 03:59:09 CST 2007

      In addition, I can seem to find what package provides: wx_gtk2_aui-2.8

       
      • pmisteli
        pmisteli
        2007-11-12

        Hello,

        I can't troubleshoot your wx installation, but here is an example linux install for reference.

        If you don't use wx for other projects, or just while you are building moreamp, you can build wx as follows:

        (this is on Ubuntu in a virtual machine on an intel mac, and all the prereqs for wx have been installed)

        ... First, we check that we have gtk+2, just to see that something is working:

        pkg-config gtk+-2.0 --modversion
        2.12.0

        ... gtk seems ok, so on to wx. We unpacked wxGTK-2.8.6.tar.gz. Then, in the wx-2.8.6 dir:

        mkdir build-gtk2
        cd build-gtk2
        ../configure --disable-shared --without-odbc

        ... configure runs a while and finishes with this:

        Configured wxWidgets 2.8.6 for `i686-pc-linux-gnu'

        Which GUI toolkit should wxWidgets use? GTK+ 2
        Should wxWidgets be compiled into single library? no
        Should wxWidgets be compiled in debug mode? no
        Should wxWidgets be linked as a shared library? no
        Should wxWidgets be compiled in Unicode mode? no
        What level of wxWidgets compatibility should be enabled?
        wxWidgets 2.4 no
        wxWidgets 2.6 yes
        Which libraries should wxWidgets use?
        jpeg builtin
        png sys
        regex sys
        tiff builtin
        zlib sys
        odbc no
        expat sys
        libmspack no
        sdl no

        pm@hostu:~/Desktop/wxGTK-2.8.6/build-gtk2$

        ... configure wx finished ok, so now we make wx:

        make

        ... and after a while, make finishes ok too, and we install wx:

        sudo make install
        sudo ldconfig

        ... Then we check the wx installation (there are other wx versions on this system):

        wx-config --list

        Default config is gtk2-ansi-release-static-2.8
        

        Default config will be used for output

        Alternate matches:
        gtk2-ansi-release-2.6
        gtk2-ansi-release-static-2.6
        gtk-ansi-release-static-2.6
        gtk-ansi-release-static-2.8

        ... So much for the wx installation.

        ...Then, in the MoreAmp-0.1.20 dir :

        ./mamkunixwxall.sh

        ... after configure we get:

        Finished configure:
        host_os = linux-gnu
        with mad (libdir)
        with lame (libdir)
        with id3tag (libdir)
        with vorbis (libdir)
        with flac (libdir)
        with faad (libdir)
        with faac (libdir)
        with mp4v2 (libdir)
        with mp4v2enc
        with portaudio (libdir)
        with portaudio (oss)
        without portaudio (alsa)
        without portaudio (jack)
        with cdreader (cdparanoia libdir)
        with aif
        with wav
        with wma
        with gui (wx)
        without wx buttons
        without wx sliders
        without wx checkboxes
        with keyboard shortcuts
        with mousewheel volume
        without small font
        prefix=/usr/local
        datadir=${datarootdir}

        Run 'make' to build moreamp.

        ... and after make, at the end of the listing (just the end part):

        ...
        g++ -c -O2 -Wall -Iinclude -I../libs/libmad -I../libs/lame/include -I../libs/libid3tag -I../libs/libogg/include -I../libs/libvorbis/include -I../libs/flac/include -I../libs/faad2/include -I../libs/faad2/common/mp4ff -I../libs/faac/include -DHAVE_INT32_T -I../libs/faac/common/mp4v2 -I-../libs/faac/common/mp4v2 -I../libs/portaudio/include -I../libs/cdparanoia -I../libs/cdparanoia/paranoia -I../libs/cdparanoia/interface -I/usr/include/gtk-2.0 -I/usr/lib/gtk-2.0/include -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/pango-1.0 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/include/freetype2 -I/usr/include/libpng12 -I/usr/local/lib/wx/include/gtk2-ansi-release-static-2.8 -I/usr/local/include/wx-2.8 -D_FILE_OFFSET_BITS=64 -D_LARGE_FILES -DWXGTK -pthread -Wno-unknown-pragmas -DUNIX -Wno-strict-aliasing maUtils.cpp -o obj/maUtils.o
        g++ -o ../moreamp obj/maAudioMac.o obj/maAudioOSX.o obj/maAudioPA.o obj/maCdaOSX.o obj/maCdaUnix.o obj/maEqualizer.o obj/maGUIgtk.o obj/maMemFile.o obj/maPlayAac.o obj/maPlayMp4.o obj/maPlayAif.o obj/maPlayCda.o obj/maPlayer.o obj/maPlayFlac.o obj/maPlayMp3.o obj/maPlayOgg.o obj/maPlayWma.o obj/maSongList.o obj/maWriteAac.o obj/maWriteMp4.o obj/maWriteAif.o obj/maWriteFlac.o obj/maWriteMp3.o obj/maWriteOgg.o obj/maWriteWav.o obj/maWriteWma.o obj/maControls.o obj/maEffects.o obj/maGUInone.o obj/maGUIosx.o obj/maGUIwx.o obj/maUtils.o ../libs/libmad/libmad.a ../libs/lame/libmp3lame.a ../libs/libid3tag/libid3tag.a ../libs/libvorbis/libvorbisenc.a ../libs/libvorbis/libvorbisfile.a ../libs/libvorbis/libvorbis.a ../libs/libogg/libogg.a ../libs/flac/libFLAC.a ../libs/faad2/libfaad.a ../libs/faad2/libmp4ff.a ../libs/faac/libfaac.a ../libs/faac/libmp4v2.a ../libs/portaudio/libportaudio.a ../libs/cdparanoia/libcdda_paranoia.a ../libs/cdparanoia/libcdda_interface.a -lrt -lz -w -lgtk-x11-2.0 -lgdk-x11-2.0 -latk-1.0 -lgdk_pixbuf-2.0 -lm -lpangocairo-1.0 -lfontconfig -lXext -lXrender -lXinerama -lXi -lXrandr -lXcursor -lXcomposite -lXdamage -lpango-1.0 -lcairo -lX11 -lXfixes -lgobject-2.0 -lgmodule-2.0 -ldl -lglib-2.0 -L/usr/local/lib -pthread /usr/local/lib/libwx_gtk2_aui-2.8.a /usr/local/lib/libwx_gtk2_xrc-2.8.a /usr/local/lib/libwx_gtk2_qa-2.8.a /usr/local/lib/libwx_gtk2_html-2.8.a /usr/local/lib/libwx_gtk2_adv-2.8.a /usr/local/lib/libwx_gtk2_core-2.8.a /usr/local/lib/libwx_base_xml-2.8.a /usr/local/lib/libwx_base_net-2.8.a /usr/local/lib/libwx_base-2.8.a -pthread -lgtk-x11-2.0 -lgdk-x11-2.0 -latk-1.0 -lgdk_pixbuf-2.0 -lfontconfig -lXext -lXrender -lXi -lXrandr -lXcursor -lXcomposite -lXdamage -lpango-1.0 -lX11 -lXfixes -lgobject-2.0 -lgmodule-2.0 -lgthread-2.0 -lrt -lglib-2.0 -lXinerama -lSM -lpng -lexpat -lwxtiff-2.8 -lwxjpeg-2.8 -lz -ldl -lm
        strip ../moreamp
        make[1]: Leaving directory `/home/pm/Desktop/MoreAmp-0.1.20/src'
        pm@hostu:~/Desktop/MoreAmp-0.1.20$

        ... then we can run moreamp:

        ./moreamp

        ...and it runs.

        Comment 1: this builds moreamp with static libs, so it will not depend on an installation of shared wx libs.

        Comment 2: you can download and build MoreAmp-0.1.20b-src.tar.gz (instead of MoreAmp-0.1.20-src.tar.gz). This is a recent source-only pre-release that has some of the changes and fixes that will be in the next version.

        Comment 3: after mamkunixwxall.sh has run, and the libs in the libs dir have been built ok, you do not need to rebuild them. Run mamkunixwx.sh instead, or even just make if you haven't changed the moreamp configuration.

        Regards,
        pmisteli

         
    • I also get these error messages when using the "mamkunixsys.sh" script:
      maCdaUnix.c:56:30: cdda_interface.h: No such file or directory
      maCdaUnix.c:57:29: cdda_paranoia.h: No such file or directory
      maCdaUnix.c:100: error: parse error before '' token
      maCdaUnix.c:100: warning: type defaults to int' in declaration ofg_d'
      maCdaUnix.c:100: warning: data definition has no type or storage class
      maCdaUnix.c:101: error: parse error before '
      ' token
      maCdaUnix.c:101: warning: type defaults to int' in declaration ofg_p'
      maCdaUnix.c:101: warning: data definition has no type or storage class
      maCdaUnix.c: In function CdaOpen': maCdaUnix.c:132: warning: implicit declaration of functioncdda_identify'
      maCdaUnix.c:132: warning: assignment makes pointer from integer without a cast
      maCdaUnix.c:149: warning: implicit declaration of function cdda_open' maCdaUnix.c:181: error: request for membertracks' in something not a structure or union
      maCdaUnix.c: In function CdaGetTrackStartEnd': maCdaUnix.c:236: warning: implicit declaration of functioncdda_track_firstsector'
      maCdaUnix.c:238: warning: implicit declaration of function cdda_track_lastsector' maCdaUnix.c: In functionCdaReadTrack':
      maCdaUnix.c:300: warning: implicit declaration of function paranoia_init' maCdaUnix.c:300: warning: assignment makes pointer from integer without a cast maCdaUnix.c:309: warning: implicit declaration of functionparanoia_seek'
      maCdaUnix.c:312: warning: implicit declaration of function paranoia_modeset' maCdaUnix.c:312: error:PARANOIA_MODE_FULL' undeclared (first use in this function)
      maCdaUnix.c:312: error: (Each undeclared identifier is reported only once
      maCdaUnix.c:312: error: for each function it appears in.)
      maCdaUnix.c:312: error: PARANOIA_MODE_NEVERSKIP' undeclared (first use in this function) maCdaUnix.c:320: warning: implicit declaration of functionparanoia_read'
      maCdaUnix.c:320: warning: initialization makes pointer from integer without a cast
      maCdaUnix.c:341: warning: implicit declaration of function cdda_read' maCdaUnix.c: In functionCdaEject':
      maCdaUnix.c:532: error: request for member ioctl_fd' in something not a structure or union maCdaUnix.c:539: error: request for memberioctl_fd' in something not a structure or union
      maCdaUnix.c: In function CdaInitCDRom': maCdaUnix.c:560: error:strerror_tr' undeclared (first use in this function)
      maCdaUnix.c: In function CdaFinish': maCdaUnix.c:601: warning: implicit declaration of functioncdda_close'
      maCdaUnix.c:607: warning: implicit declaration of function paranoia_free' make[1]: *** [obj/maCdaUnix.o] Error 1 make[1]: Leaving directory/root/MoreAmp-0.1.14/src'
      make: *** [moreamp] Error 2

      For some reason, trying to compile this way doesn't give me any AAC or MP4 errors.

       
      • ./configure is not necessarily the first thing to try when building moreamp, and the mamkunixsys.sh script assumes you have all the required libraries already installed on your system.

        Try instead the mamkunixall.sh script, which runs the libs/mamklibsunix.sh script to build the libraries in the MoreAmp-0.1.14/libs dir, then runs the mamkunix.sh script to build moreamp using these libraries:

        NOTE:
        the mamkunix.sh script relies on wx being installed on your system in /usr/local.

        If you have wxx11univ installed instead of wxgtk, or if wx is not installed in /usr/local, you need to edit the mamkunix.sh script to change or comment out the lines

        'ln -sf /usr/local/bin/wxgtk-2.4-config /usr/local/bin/wx-config'

        and/or

        'ln -sf /usr/local/lib/wx/config/gtk-ansi-release-static-2.6 /usr/local/bin/wx-config'

        You may need to be root to run the script if you leave these lines uncommented out.

        Then, if you have wx-2.6.1 enter ./mamkmaunixall.sh

        or if you have wx-2.4.2 enter ./mamkmaunixall.sh 4

        This script takes a while to finish.

        This script does not affect anything outside the MoreAmp-0.1.14 dir (except maybe the link to wx-config).

        Some libs (flac) generate warnings but the moreamp build should be clean.

        If this doesn't produce a moreamp executable, first check that all the libs got built :

        ls libs/*/*.a should list

        libs/cdparanoia/libcdda_interface.a
        libs/cdparanoia/libcdda_paranoia.a
        libs/faac/libfaac.a
        libs/faad2/libfaad.a
        libs/faad2/libmp4ff.a
        libs/faad2/libmp4v2.a
        libs/flac/libFLAC.a
        libs/lame/libmp3lame.a
        libs/libid3tag/libid3tag.a
        libs/libmad/libmad.a
        libs/libogg/libogg.a
        libs/libvorbis/libvorbis.a
        libs/libvorbis/libvorbisenc.a
        libs/libvorbis/libvorbisfile.a
        libs/portaudio/libportaudio.a


        If this is ok, check that configure finished as follows
        (run ./configure if you need to)


        Finished configure:
        host_os = linux-gnu <-- this line may be different
        with mad (libdir)
        with lame (libdir)
        with id3tag (libdir)
        with vorbis (libdir)
        with flac (libdir)
        with faad (libdir)
        with faac (libdir)
        with mp4v2 (libdir)
        with mp4v2enc
        with portaudio (libdir)
        with cdreader (cdparanoia libdir)
        with aif
        with wav
        with wma
        with gui (wx)
        with keyboard shortcuts

        Run 'make' to build moreamp.

        And if this is ok, check the make listing (run make if you need to).

        All this should either get you a working moreamp or enough information to find the problem.

        pmisteli

         
    • Okay, I've determined the problem:
      maWriteMp4.c: In function OpenWriteMp4': maWriteMp4.c:231: error: too many arguments to functionMP4Create'
      maWriteMp4.c:249: warning: dereferencing type-punned pointer will break strict-aliasing rules
      make[1]: [obj/maWriteMp4.o] Error 1
      make[1]: Leaving directory `/root/MoreAmp-0.1.14/src'
      make:
      [moreamp] Error 2

      Everything else checks out.

       
      • You said earlier you were not getting any AAC or MP4 errors when using the "mamkunixsys.sh" script.
        You can try
        ./configure --with-faad=system --with-faac=system --with-mp4v2=system
        make

        If that doesn't help :

        for the warning, try this change in file maWriteMp4.c line 249:

        // faacEncGetDecoderSpecificInfo(g_wmp4hEncoder, &ASC, (long unsigned int)&ASCLength);
        faacEncGetDecoderSpecificInfo(g_wmp4hEncoder, (unsigned char
        )&ASC, (unsigned long)&ASCLength);

        As for the error at line 231, I cannot reproduce it :

        In mp4.h line 217 there is this prototype for MP4Create() :

        MP4FileHandle MP4Create(
        const char* fileName,
        u_int32_t verbosity DEFAULT(0),
        bool use64bits DEFAULT(0),
        bool useExtensibleFormat DEFAULT(0));


        and at mp4.h line 34 there is this macro :

        ifdef __cplusplus

        / exploit C++ ability of default values for function parameters /

        define DEFAULT(x) =x

        else

        define DEFAULT(x)

        endif


        Maybe your compiler has a problem handling the 'DEFAULT(x)' macro. You can try commenting out the macro from the MP4Create prototype in mp4.h to see what happens :

        MP4FileHandle MP4Create(
        const char fileName,
        u_int32_t verbosity /
        DEFAULT(0) /,
        bool use64bits /
        DEFAULT(0) /,
        bool useExtensibleFormat /
        DEFAULT(0) */);


        Please post your results here so I'll know what to fix.

        pmisteli

         
    • If I comment out the lines that have the aliasing rules, the errors disappear.

      I'm still getting the "too many arguments" error from MP4Create. The line reads:
      g_MP4hFile = MP4Create(g_outputfile, 0, 0, 0);

      I'm using gcc 3.4.1 for my compiler if that helps.

      Also, I read that if you add a line to the Makefile saying:
      OBJFLAGS= -fno-strict-aliasing
      that the aliasing problems would stop.

      ./configure now works without any problems.

       
        1. "If I comment out the lines that have the aliasing rules, the errors disappear."
          Sorry, I don't quite follow this.
          What lines you comment out ? (what line numbers ?)
          What errors disappear ? (What warnings disappear ?)

        2. "I'm still getting the "too many arguments" error from MP4Create. The line reads:
          g_MP4hFile = MP4Create(g_outputfile, 0, 0, 0);"

        See what happens if you reduce the number of arguments. Change the line to :
        g_MP4hFile = MP4Create(g_outputfile, 0, 0 / , 0 /);

        Then maybe to :
        g_MP4hFile = MP4Create(g_outputfile, 0 / , 0, 0 /);

        And maybe even to :
        g_MP4hFile = MP4Create(g_outputfile / , 0, 0, 0 /);

        1. Build the "faac" frontend in the faac release (faac-1.24 and faad2-2.0).
          See how main.c compiled. It calls MP4Create with 3 or 4 arguments, depending on whether or not MP4_CREATE_EXTENSIBLE_FORMAT is defined.

        2. "I'm using gcc 3.4.1 for my compiler if that helps.
          Also, I read that if you add a line to the Makefile saying:
          OBJFLAGS= -fno-strict-aliasing
          that the aliasing problems would stop."

        I use gcc version 3.3 on OSX/BSD and gcc version 3.2.2 on Red Hat Linux 2.4

        If I do gcc -v --help | fgrep alias I get on both systems :
        -fstrict-aliasing Assume strict aliasing rules apply
        -fargument-noalias-global Assume arguments do not alias each other or globals
        -fargument-noalias Assume arguments may alias globals but not each other
        -fargument-alias Specify that arguments may alias each other & globals
        and only on OSX/BSD :
        -Wstrict-aliasing Warn about code which might break the strict aliasing rules ()

        What do you get with your gcc ?

        1. "./configure now works without any problems."
          Ok, but I'm still not sure what moreamp configuration you end up with. It may help if you post the lines you get at the end, from "Finished configure" to "Run make to build moreamp".

        pmisteli

         
    • Putting the "/ /" gets rid of the error on line 231. But now, portaudio is having problems. I get about 100 errors saying that certain functions are giving undefined references. The files with the problems are pa_linux_alsa.c and pa_jack.c
      Is there anyway to compile without portaudio. I don't really need audio playback.

      As to #1, what I meant is that if I comment out line 249, the strict aliasing problems stop.

      "gcc -v --help | fgrep alias" gives me:
      -Wstrict-aliasing Warn about code which might break strict aliasing
      -fargument-alias Specify that arguments may alias each other and
      -fargument-noalias Assume arguments may alias globals but not each
      -fargument-noalias-global Assume arguments alias neither each other nor
      -fstrict-aliasing Assume strict aliasing rules apply

       
        1. "Putting the "/ /" gets rid of the error on line 231."

        Which one ?

        a. g_MP4hFile = MP4Create(g_outputfile, 0, 0 / , 0 /);

        or b. g_MP4hFile = MP4Create(g_outputfile, 0 / , 0, 0 /);

        or c. g_MP4hFile = MP4Create(g_outputfile / , 0, 0, 0 /);

        1. "But now, portaudio is having problems. I get about 100 errors saying that certain functions are giving undefined references. The files with the problems are pa_linux_alsa.c and pa_jack.c"

        Are pa_linux_alsa and pa_jack.c being compiled now? They should have been compiled when libportaudio.a was built. Was libportaudio.a built? If not you should have gotten
        "configure: error: *** libdir libs/portaudio/libportaudio.a not found. Try configure --with-portaudio=system."

        1. "Is there anyway to compile without portaudio. I don't really need audio
          playback."

        Moreamp on unix does not build without portaudio (portaudio_v19).

        If libportaudio.a is not found, configure stops with
        "configure: error: *** libdir libs/portaudio/libportaudio.a not found. Try configure --with-portaudio=system."

        Generally, if you ignore configure errors you will have problems running make.
        In this case make will fail with linker errors like
        "obj/maAudioPA.o(text+0x2e): In function maOpenSndChannel': : undefined reference toPa_Initialize`"

        If you configure --with-portaudio=system, configure assumes portaudio is installed. If it is not installed, then make will fail when compiling maAudioPA.c.

        There may be problems if you use libraries (installed libraries) whose versions differ from those moreamp was developped with. That's one reason the libs dir is included with moreamp (and why the gz archive is so big).

        1. "As to #1, what I meant is that if I comment out line 249, the strict aliasing
          problems stop."

        If you leave that line commented out, moreamp will fail when making mp4 (m4a) files. Leaving it in may cause a warning but not an error that stops make.

        1. At this point I only have two suggestions :

        2. Recreate a fresh MoreAmp-0.1.14 dir from the MoreAmp-0.1.14-src.tar.gz archive, then run

        ./mamkunixall.sh 2&gt;mk2.txt | tee mk.txt

        Errors are logged to mk2.txt.

        Then, if there are problems, zip the files mk2.txt, mk.txt and config.log.

        If a library file does not get built (ls libs/*/*.a | wc -l should return 15), also zip its config.log, e.g. if you didn't get libs/faac/libfaac.a, then zip libs/faac/config.log.

        Then mail the zips to pmisteli@users.sourceforge.net, and I may have enough information to figure out what's going on.

        1. Try another application, such as the faac frontend, which may be more suitable for your purpose:
          http://sourceforge.net/projects/faac

        pmisteli

         
    • Have you received my email?

       
    • Sorry its taken so long for me to get back to you. I'm now trying out a plugin for amarok, which works pretty well.

      I've uploaded a zip file of the aforementioned files:
      http://www.lateradio.com/easyamp.zip

       
      • I've seen an amarok script that uses faac (frontend) to make mp4 files.

        Thanks for the log files. It looks like you're not able to build the libraries for portaudio and aac/mp4 encoding/decoding (five libraries).

        These five happen to be ones whose builds I diddled to make them work on MacOSX/BSD, which may have broken them for some linuxes (though they are ok on the RedHat linux I use).

        If you want to try again, with fresh unmodified portaudio, faac and faad2 releases, follow these steps :

        =+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+
        1. Get these archives :

        portaudio
        

        http://www.portaudio.com/archives/pa_snapshot_v19.tar.gz
        (this release is more recent than the one in the MoreAmp-0.1.14 release)

        faad2
        

        http://prdownloads.sourceforge.net/faac/faad2-2.0.tar.gz?download

        faac
        

        http://prdownloads.sourceforge.net/faac/faac-1.24.tar.gz?download

        =+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+
        2. Build them (see notes below) :

        To build portaudio :
        cd wherever/portaudio
        ./configure
        make
        (install is in step 4)

        To build faad :
        cd wherever/faad
        chmod +x bootstrap
        ./bootstrap
        ./configure --with-mp4v2
        make
        (install is in step 4)

        To build faac :
        cd wherever/faac
        chmod +x bootstrap
        ./bootstrap
        ./configure
        make
        (install is in step 4)

        Notes :
        The faac and faad2 build procedures above are as given in the releases but on my RedHat linux system I had to add these three changes to work around faad2 and faac make errors that stopped the build :

        faad2 : the 'rpm:' section at the end of Makefile.am has three lines with leading spaces that should be changed to one leading tab per line (this change requires that bootstrap be rerun) :
        rpm: Makefile
        make dist
        $(RPMBUILD) -ta $(PACKAGE)-$(VERSION).tar.gz
        rm $(PACKAGE)-$(VERSION).tar.gz

        faad2 : use the following line instead of the './configure --with-mp4v2' line above
        ./configure --with-mp4v2 --without-external_mp4v2 --disable-dependency-tracking

        faac : use the following line instead of the './configure' line above
        ./configure --disable-dependency-tracking

        It is probably best to start with a fresh extraction of the archive before applying these changes (before running bootstrap).

        If any of these builds fail then the problem is likely in your system or in the library releases.

        =+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+
        3. Build the other libraries required for moreamp.

        3a1. In a MoreAmp-0.1.14 dir freshly extracted from the MoreAmp-0.1.14-src.tar.gz archive :
        
             in script MoreAmp-0.1.14/libs/mamklibsunix.sh, comment out three lines (add # in front) :
        
             # ./mamkfaacunix.sh    line 44
             # ./mamkfaad2unix.sh   line 56
             # ./mamkpaunix.sh      line 159
        
        3a2. Build the (other) libraries :
        
             cd MoreAmp-0.1.14/libs
             ./mamklibsunix.sh
        

        =+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+
        4. Use the new libraries for moreamp.

        4a. Rename (or remove) these dirs from the MoreAmp-0.1.14/libs dir :

        cd MoreAmp-0.1.14/libs
        mv portaudio portaudio014
        mv faad2 faad2014
        mv faac faac014
        

        4b. Decide whether to install the new portaudio, faad2 and faac libraries or to just use them for moreamp (or both).

        If you decide to install the new portaudio, faad2 and faac libraries :
        
        Run 'sudo make install' from each of the (new) portaudio, faad2 and faac dirs.
        

        4c. If you just want to use the new portaudio, faad2 and faac libraries for moreamp :

        4c1. Replace the dirs renamed (or removed) above with the new dirs (copy or move) :
        
            cd MoreAmp-0.1.14/libs
            cp -rp wherever/portaudio .
            cp -rp wherever/faad2 .
            cp -rp wherever/faac .
        
        4c2. Copy the static libs where moreamp will find them (and a 'make clean' won't remove them) :
        
            cd MoreAmp-0.1.14/libs/portaudio
            cp -p lib/libportaudio.a .
        
            cd MoreAmp-0.1.14/libs/faad2
            cp -p common/mp4ff/.libs/libmp4ff.a .
            cp -p common/mp4v2/.libs/libmp4v2.a .
            cp -p libfaad/.libs/libfaad.a .
        
            cd MoreAmp-0.1.14/libs/faac
            cp -p libfaac/.libs/libfaac.a .
        

        =+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+
        5. Build moreamp

        5a. Edit script MoreAmp-0.1.14/mamkunix.sh :
        
            5a1. If you installed (step 4a1) the new portaudio, faad2 and faac ibraries change line 27 from
             './configure' to :
        
            ./configure --with-portaudio=system --with-faad=system --with-mp4v2=system --with-faac=system
        
            5a2. Comment out (or delete) the whole wx/gtk/x11 options section (it is useless here),
             lines 9 to 19 :
        
            #if  [ &quot;$1&quot; = &quot;4&quot; ]; then
             # build for gtk with wx-2.4.2
            #ln -sf /usr/local/bin/wxgtk-2.4-config /usr/local/bin/wx-config
             # build for x11 with wx-2.4.2
             # ln -sf /usr/local/bin/wxx11univ-2.4-config /usr/local/bin/wx-config
            #else
             # build for gtk with wx-2.6.1
            #  ln -sf /usr/local/lib/wx/config/gtk-ansi-release-static-2.6 /usr/local/bin/wx-config
             # build for x11 with wx-2.6.1
             # ln -sf /usr/local/lib/wx/config/x11univ-ansi-release-static-2.6 /usr/local/bin/wx-config
            #fi
        
        5b. Launch the build :
        
            cd MoreAmp-0.1.14
            ./mamkunix.sh
            (to save the output, './mamkunix.sh 2&gt;mk2.txt | tee mk.txt'
        
         
    • I've done all of your suggestions. Now the problem is, is that when I run makunix.sh, faac.h is found, but can't be compiled. When I run the "moreamp" command, I get the message:
      /root/.gtkrc:1559: error: unexpected identifier gtk-font-name', expected keyword - e.g.style'
      Segmentation fault

      But when I run "./mamkunix.sh 2>mk2.txt | tee mk.txt" I don't get the faac.h compilation problem. The segmentation fault reamins, though.

      I've posted a new zip with the appropriate log files here:
      http://www.lateradio.com/easyamp_new.zip

       
      • Thanks again for the log files.

        It looks like portaudio, faad2 and faac got built and installed ok.

        The faad and faac frontends, which you can use to read/write aac/mp4 files, probably also got built and installed (check by running 'faad --help' and 'faac --help').

        The 'configure: WARNING: faac.h: present but cannot be compiled' warning may or may not be a problem, but at least it doesn't stop the build the way errors do (you don't see errors or warnings on the screen when stderr is redirected to a file with '2>mk2.txt', they only go in the file), and you are getting a moreamp binary.

        About "/root/.gtkrc:1559: error: unexpected identifier gtk-font-name', expected keyword - e.g.style'" :

        Does any other wx app work?

        You might try building and running, for example, the wx font sample (I'm guessing you use wxGTK-2.4.2) :

        cd wxGTK-2.4.2/samples/font
        make -f makefile.unx
        strip font
        ./font
        

        If moreamp is the only wx app that causes this eror, then it may well be a problem with mporeamp, but so far it is too early to tell.

        You might also try building moreamp without any gui (in the same MoreAmp-0.1.14 dir where you ran mamkunix.sh) :

        cd MoreAmp-0.1.14
        make clean
        ./configure --with-portaudio=system --with-faad=system --with-mp4v2=system --with-faac=system --with-gui=none
        make
        strip moreamp
        

        You can rename moreamp to something like moreampcli, or moreampnogui :

        mv moreamp moreampnogui
        

        Then play a file with

        ./moreampnogui anywhere/afile.mp3
        
        'Shift-Q' to exit.
        

        There is a short 'No gui' section in the README. For a list of commands, which are the same as the keyboard shortcuts in a gui moreamp, look at the file moreamp/masettings/makeybindings.txt (which is generated the first time moreamp is run).

        pmisteli

         
    • I'm wondering that my wxGTK problems might be because I'm using an RPM from my distro. The version I have is 2.4.2
      Should I upgrade to 2.6.2?

      I also have Audacity installed, which uses wxGTK, and I don't have any problems with it.

      I would prefer to have a GUI, if at all possible. Maybe I should try wxX11?

      When I install moreamp with no GUI, I still get the segmentation fault. Could this be because FAAC isn't properly implemented?

      Thanks

       
      • You didn't say what happened with the wx font sample program.


        If you were able to build, install and run Audacity with your current wxGTK-2.4.2 installation then your wx installation is probably ok for moreamp, assuming you also built Audacity with static wx libraries.

        But it is still a good idea to upgrade to wx-2.6.2.

        Moreamp had some problems with wxGTK-2.4.2 that it didn't have with wxGTK-2.6.1 and I may not have found them all.


        The reason for a moreamp without a GUI is a test to see how it builds and runs without using wx at all.

        There is no need to install it for testing. Just rename it so it doesn't get overwritten by future makes and so that you don't inadvertently invoke an installed moreamp (by typing 'moreamp' instead of './moreampnogui').

        Maybe the the segmentation fault with the GUI version is not related to the .gtkrc error, and both gui and nogui versions are crashing for the same reason.

        If it crashed due problems with the faad/faac lib build, it wouldn't crash until it actually used faad/faac code to decode or encode an aac/mp4 file.

        You might check your home dir to see if a 'moreamp' dir gets created and what's in it.

        The best way to proceed now, in addition to upgrading to wx-2.6.2, is probably to get the nogui build working.

        Here are some things you can try :

        1. Eliminate some moreamp components from the build :

          1a. Comment out line 263 in src/maConfig.h (add the '//' in front)
          // #define MAINSTANCES

          1b. Built and test moreampnogui without any faac/faad components :

          cd MoreAmp-0.1.14
          make clean
          ./configure --with-portaudio=system --without-faad --without-mp4v2 --without-faac ---with-gui=none
          make
          strip moreamp
          mv moreamp moreampnogui
          ./moreampnogui anywhere/afile.mp3

          'Shift-Q' to quit.

          You might also try './moreampnogui' without any parameters.

        2. If this tests ok then uncomment the MAINSTANCES definition in src/maConfig.h and try 1b. again

        3. If 1. and 2. both fail you might try simplifying things even more in 1b. :

          3.a ./configure ... --without-cdreader ...

          3.b Any of these normally wouldn't change anything until you actually tried to play mp3, ogg, flac, etc, files :

          --without-mad
          --without-lame
          --without-id3tag
          --without-vorbis
          --without-flac
          --without-aif
          --without-wav
          --without-wma

        pmisteli