You are not logged in.
Hello Arch Forums! I'm compiling prboom and alephone. Both give me the same error,
Makefile:285: recipe for target 'install-recursive' failed
I've done some searching and still haven't found a solution. What is all-recursive, and how can I continue installation?
Here's the full report:
make all-recursive
make[1]: Entering directory '/home/switch/Downloads/prboom-2.5.0'
Making all in doc
make[2]: Entering directory '/home/switch/Downloads/prboom-2.5.0/doc'
make[2]: Nothing to be done for 'all'.
make[2]: Leaving directory '/home/switch/Downloads/prboom-2.5.0/doc'
Making all in data
make[2]: Entering directory '/home/switch/Downloads/prboom-2.5.0/data'
make[2]: Nothing to be done for 'all'.
make[2]: Leaving directory '/home/switch/Downloads/prboom-2.5.0/data'
Making all in src
make[2]: Entering directory '/home/switch/Downloads/prboom-2.5.0/src'
Making all in SDL
make[3]: Entering directory '/home/switch/Downloads/prboom-2.5.0/src/SDL'
gcc -DHAVE_CONFIG_H -I. -I../.. -g -O2 -Wall -Wno-unused -Wno-switch -march=native -Wextra -Wno-missing-field-initializers -Winline -Wwrite-strings -Wundef -Wbad-function-cast -Wcast-align -Wcast-qual -Wdeclaration-after-statement -ffast-math -O2 -fomit-frame-pointer -I../../src -I/usr/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT -MT i_sshot.o -MD -MP -MF .deps/i_sshot.Tpo -c -o i_sshot.o i_sshot.c
i_sshot.c: In function ‘I_ScreenShot’:
i_sshot.c:234:32: error: ‘png_error_ptr_NULL’ undeclared (first use in this function)
PNG_LIBPNG_VER_STRING, png_error_ptr_NULL, error_fn, warning_fn);
^
i_sshot.c:234:32: note: each undeclared identifier is reported only once for each function it appears in
i_sshot.c:282:43: error: ‘png_infopp_NULL’ undeclared (first use in this function)
png_destroy_write_struct(&png_ptr, png_infopp_NULL);
^
Makefile:242: recipe for target 'i_sshot.o' failed
make[3]: *** [i_sshot.o] Error 1
make[3]: Leaving directory '/home/switch/Downloads/prboom-2.5.0/src/SDL'
Makefile:460: recipe for target 'all-recursive' failed
make[2]: *** [all-recursive] Error 1
make[2]: Leaving directory '/home/switch/Downloads/prboom-2.5.0/src'
Makefile:285: recipe for target 'all-recursive' failed
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory '/home/switch/Downloads/prboom-2.5.0'
Makefile:205: recipe for target 'all' failed
make: *** [all] Error 2
Last edited by SwitchDhole (2015-03-04 05:59:45)
Offline
This sounds like a problem that is specific to the package or the code itself. I'm don't use either of those, but I can give you some general recommendations.
`pacman -Syu` has been known to fix compilation errors when a package depends on a header file that is owned by another package. Unfortunately this works the other way around, too: the packages you're trying to install might depend on an older header file that has been upgraded by pacman. The latter is usually a result of outdated code and is much harder to fix.
`grep png_error_ptr_NULL -R /usr/include` will show you which header files the identifier appears in (if any). One of them should contain the declaration, so make sure that file is #include'd in i_sshot.c
For best results, I recommend contacting the package maintainer, posting a comment on the AUR package page, or contacting upstream directly. Those users are likely to be more knowledgeable about this software than the rest of us on the forum.
Offline
It probably is due to outdated code. I'll use the AUR version then. These are emulators for DOOM and Marathon, so they're bound to be dated.
What's the difference between using the AUR and compiling the package from the website, anyway?
I thought the website package would be more 'pure', as in not using anything Arch specific and less likely to contain malicious code.
Last edited by SwitchDhole (2015-03-03 19:09:34)
Offline
AUR package prboom compiles correctly. Looking at the prboom pkgbuild it does two things you are probably not doing
# path fix
sed "s|/games|/bin|g" -i src/Makefile.in
# allow building with newer libpng
patch -p1 < ../libpng-1.4.patch
Looking at your make error, I see
i_sshot.c:234:32: error: ‘png_error_ptr_NULL’ undeclared (first use in this function)
PNG_LIBPNG_VER_STRING, png_error_ptr_NULL, error_fn, warning_fn);
The libpng version needs to be updated from upstream package.
Offline
Using a pkgbuild means that pacman can manage all of the files, making it easier to remove the software and/or manage updates. Just make sure that the pkgbuild doesn't do any weird stuff and the AUR will prove to be rather useful for installing software.
Last edited by runical (2015-03-03 19:36:09)
Offline