DavidGriffith / frotz

Infocom-style interactive fiction player for Unix and DOS (moved to https://gitlab.com/DavidGriffith/frotz)
GNU General Public License v2.0
209 stars 64 forks source link

Can't compile blorb in dev (reordering cc options fixed it) #60

Closed tschmidty69 closed 6 years ago

tschmidty69 commented 6 years ago

Standard compile after moving just -lcurses to the end still failed

cc -Wall -Wextra -std=gnu99 -g -I/usr/local/include -lao -ldl -lpthread -lm -lsndfile -lvorbisfile -lmodplug -lsamplerate -L/usr/local/lib src/frotz_common.a src/frotz_curses.a src/blorblib.a -o frotz -lncurses
src/frotz_curses.a(ux_audio.o): In function `audiobuffer_init':
/home/homeassistant/WORK/frotz/src/curses/ux_audio.c:112: undefined reference to `sem_init'
/home/homeassistant/WORK/frotz/src/curses/ux_audio.c:113: undefined reference to `sem_init'
/home/homeassistant/WORK/frotz/src/curses/ux_audio.c:114: undefined reference to `sem_post'
src/frotz_curses.a(ux_audio.o): In function `os_init_sound':

Was able to compile manually wiht this line and everything worked well

cc -Wall -Wextra -std=gnu99 -g -I/usr/local/include src/frotz_common.a src/frotz_curses.a src/blorblib.a -o frotz -lncurses -lao -ldl -lpthread -lm -lsndfile -lvorbisfile -lmodplug -lsamplerate -L/usr/local/lib
DavidGriffith commented 6 years ago

What OS / distribution are you using? The build works fine for me with Debian 9.

tschmidty69 commented 6 years ago

Ubuntu 17.10, was just a git clone, make. Like I say, I did get it to compile and run zblorb with dfrontz but I have severe ptsd form figuring out makefiles back when so gave it a bit of a look but.. love it though, thanks. Got it working with zmachine api and snips voice assistant, very cool. Although Zork still frustrates the heck out of me!

escondida commented 6 years ago

tschmidty69, is your cc actually GCC or something else, out of curiosity? I haven't been able to reproduce the problem here with CC=gcc or CC=clang.

tschmidty69 commented 6 years ago

No, just the standard cc that comes with ubunut 17.10

 $ cc --version
cc (Ubuntu 7.2.0-8ubuntu3) 7.2.0
Copyright (C) 2017 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.

Here is the full build from make clean

(homeassistant) $ cd ~/WORK/frotz/                                                                                                                                                                                                   [69/716]
(homeassistant) $ make clean
rm -f src/*.h src/*.a src/common/defines.h \
        src/common/git_hash.h src/curses/defines.h \
        frotz*.tar.gz
find . -iname *.o -delete
(homeassistant) $ make
Creating src/common/git_hash.h
Generating src/common/defines.h
cc -Wall -Wextra -std=gnu99 -g -I/usr/local/include -lao -ldl -lpthread -lm -lsndfile -lvorbisfile -lmodplug -lsamplerate -fPIC -fpic -o src/common/buffer.o -c src/common/buffer.c
cc -Wall -Wextra -std=gnu99 -g -I/usr/local/include -lao -ldl -lpthread -lm -lsndfile -lvorbisfile -lmodplug -lsamplerate -fPIC -fpic -o src/common/err.o -c src/common/err.c
cc -Wall -Wextra -std=gnu99 -g -I/usr/local/include -lao -ldl -lpthread -lm -lsndfile -lvorbisfile -lmodplug -lsamplerate -fPIC -fpic -o src/common/fastmem.o -c src/common/fastmem.c
cc -Wall -Wextra -std=gnu99 -g -I/usr/local/include -lao -ldl -lpthread -lm -lsndfile -lvorbisfile -lmodplug -lsamplerate -fPIC -fpic -o src/common/files.o -c src/common/files.c
cc -Wall -Wextra -std=gnu99 -g -I/usr/local/include -lao -ldl -lpthread -lm -lsndfile -lvorbisfile -lmodplug -lsamplerate -fPIC -fpic -o src/common/hotkey.o -c src/common/hotkey.c
cc -Wall -Wextra -std=gnu99 -g -I/usr/local/include -lao -ldl -lpthread -lm -lsndfile -lvorbisfile -lmodplug -lsamplerate -fPIC -fpic -o src/common/input.o -c src/common/input.c
cc -Wall -Wextra -std=gnu99 -g -I/usr/local/include -lao -ldl -lpthread -lm -lsndfile -lvorbisfile -lmodplug -lsamplerate -fPIC -fpic -o src/common/main.o -c src/common/main.c
cc -Wall -Wextra -std=gnu99 -g -I/usr/local/include -lao -ldl -lpthread -lm -lsndfile -lvorbisfile -lmodplug -lsamplerate -fPIC -fpic -o src/common/math.o -c src/common/math.c
cc -Wall -Wextra -std=gnu99 -g -I/usr/local/include -lao -ldl -lpthread -lm -lsndfile -lvorbisfile -lmodplug -lsamplerate -fPIC -fpic -o src/common/object.o -c src/common/object.c
cc -Wall -Wextra -std=gnu99 -g -I/usr/local/include -lao -ldl -lpthread -lm -lsndfile -lvorbisfile -lmodplug -lsamplerate -fPIC -fpic -o src/common/process.o -c src/common/process.c
cc -Wall -Wextra -std=gnu99 -g -I/usr/local/include -lao -ldl -lpthread -lm -lsndfile -lvorbisfile -lmodplug -lsamplerate -fPIC -fpic -o src/common/quetzal.o -c src/common/quetzal.c
src/common/quetzal.c: In function ‘restore_quetzal’:
src/common/quetzal.c:328:6: warning: this statement may fall through [-Wimplicit-fallthrough=]
   if (!(progress & GOT_MEMORY)) /* Don't complain if two. */
      ^
src/common/quetzal.c:381:6: note: here
      case ID_UMem:
      ^~~~
src/common/quetzal.c:382:6: warning: this statement may fall through [-Wimplicit-fallthrough=]
   if (!(progress & GOT_MEMORY)) /* Don't complain if two. */
      ^
src/common/quetzal.c:399:6: note: here
      default:
      ^~~~~~~
cc -Wall -Wextra -std=gnu99 -g -I/usr/local/include -lao -ldl -lpthread -lm -lsndfile -lvorbisfile -lmodplug -lsamplerate -fPIC -fpic -o src/common/random.o -c src/common/random.c
cc -Wall -Wextra -std=gnu99 -g -I/usr/local/include -lao -ldl -lpthread -lm -lsndfile -lvorbisfile -lmodplug -lsamplerate -fPIC -fpic -o src/common/redirect.o -c src/common/redirect.c
cc -Wall -Wextra -std=gnu99 -g -I/usr/local/include -lao -ldl -lpthread -lm -lsndfile -lvorbisfile -lmodplug -lsamplerate -fPIC -fpic -o src/common/screen.o -c src/common/screen.c
cc -Wall -Wextra -std=gnu99 -g -I/usr/local/include -lao -ldl -lpthread -lm -lsndfile -lvorbisfile -lmodplug -lsamplerate -fPIC -fpic -o src/common/sound.o -c src/common/sound.c
cc -Wall -Wextra -std=gnu99 -g -I/usr/local/include -lao -ldl -lpthread -lm -lsndfile -lvorbisfile -lmodplug -lsamplerate -fPIC -fpic -o src/common/stream.o -c src/common/stream.c
cc -Wall -Wextra -std=gnu99 -g -I/usr/local/include -lao -ldl -lpthread -lm -lsndfile -lvorbisfile -lmodplug -lsamplerate -fPIC -fpic -o src/common/table.o -c src/common/table.c
cc -Wall -Wextra -std=gnu99 -g -I/usr/local/include -lao -ldl -lpthread -lm -lsndfile -lvorbisfile -lmodplug -lsamplerate -fPIC -fpic -o src/common/text.o -c src/common/text.c
cc -Wall -Wextra -std=gnu99 -g -I/usr/local/include -lao -ldl -lpthread -lm -lsndfile -lvorbisfile -lmodplug -lsamplerate -fPIC -fpic -o src/common/variable.o -c src/common/variable.c
ar rc src/frotz_common.a src/common/git_hash.h src/common/defines.h src/common/buffer.o src/common/err.o src/common/fastmem.o src/common/files.o src/common/hotkey.o src/common/input.o src/common/main.o src/common/math.o src/common/object
.o src/common/process.o src/common/quetzal.o src/common/random.o src/common/redirect.o src/common/screen.o src/common/sound.o src/common/stream.o src/common/table.o src/common/text.o src/common/variable.o
/usr/bin/ranlib src/frotz_common.a
Generating src/curses/defines.h
cc -Wall -Wextra -std=gnu99 -g -I/usr/local/include -lao -ldl -lpthread -lm -lsndfile -lvorbisfile -lmodplug -lsamplerate -fPIC -fpic -o src/curses/ux_init.o -c src/curses/ux_init.c
cc -Wall -Wextra -std=gnu99 -g -I/usr/local/include -lao -ldl -lpthread -lm -lsndfile -lvorbisfile -lmodplug -lsamplerate -fPIC -fpic -o src/curses/ux_input.o -c src/curses/ux_input.c
cc -Wall -Wextra -std=gnu99 -g -I/usr/local/include -lao -ldl -lpthread -lm -lsndfile -lvorbisfile -lmodplug -lsamplerate -fPIC -fpic -o src/curses/ux_pic.o -c src/curses/ux_pic.c
cc -Wall -Wextra -std=gnu99 -g -I/usr/local/include -lao -ldl -lpthread -lm -lsndfile -lvorbisfile -lmodplug -lsamplerate -fPIC -fpic -o src/curses/ux_screen.o -c src/curses/ux_screen.c
cc -Wall -Wextra -std=gnu99 -g -I/usr/local/include -lao -ldl -lpthread -lm -lsndfile -lvorbisfile -lmodplug -lsamplerate -fPIC -fpic -o src/curses/ux_text.o -c src/curses/ux_text.c
cc -Wall -Wextra -std=gnu99 -g -I/usr/local/include -lao -ldl -lpthread -lm -lsndfile -lvorbisfile -lmodplug -lsamplerate -fPIC -fpic -o src/curses/ux_blorb.o -c src/curses/ux_blorb.c
cc -Wall -Wextra -std=gnu99 -g -I/usr/local/include -lao -ldl -lpthread -lm -lsndfile -lvorbisfile -lmodplug -lsamplerate -fPIC -fpic -o src/curses/ux_audio.o -c src/curses/ux_audio.c
cc -Wall -Wextra -std=gnu99 -g -I/usr/local/include -lao -ldl -lpthread -lm -lsndfile -lvorbisfile -lmodplug -lsamplerate -fPIC -fpic -o src/curses/ux_resource.o -c src/curses/ux_resource.c
cc -Wall -Wextra -std=gnu99 -g -I/usr/local/include -lao -ldl -lpthread -lm -lsndfile -lvorbisfile -lmodplug -lsamplerate -fPIC -fpic -o src/curses/ux_audio_none.o -c src/curses/ux_audio_none.c
cc -Wall -Wextra -std=gnu99 -g -I/usr/local/include -lao -ldl -lpthread -lm -lsndfile -lvorbisfile -lmodplug -lsamplerate -fPIC -fpic -o src/curses/ux_locks.o -c src/curses/ux_locks.c
ar rc src/frotz_curses.a src/curses/defines.h src/curses/ux_init.o src/curses/ux_input.o src/curses/ux_pic.o src/curses/ux_screen.o src/curses/ux_text.o src/curses/ux_blorb.o src/curses/ux_audio.o src/curses/ux_resource.o src/curses/ux_a
udio_none.o src/curses/ux_locks.o
/usr/bin/ranlib src/frotz_curses.a
cc -Wall -Wextra -std=gnu99 -g -I/usr/local/include -lao -ldl -lpthread -lm -lsndfile -lvorbisfile -lmodplug -lsamplerate -fPIC -fpic -o src/blorb/blorblib.o -c src/blorb/blorblib.c
ar rc src/blorblib.a src/blorb/blorblib.o
/usr/bin/ranlib src/blorblib.a
cc -Wall -Wextra -std=gnu99 -g -I/usr/local/include -lao -ldl -lpthread -lm -lsndfile -lvorbisfile -lmodplug -lsamplerate src/frotz_common.a src/frotz_curses.a src/blorblib.a -o frotz -lncurses -L/usr/local/lib
src/frotz_curses.a(ux_audio.o): In function `audiobuffer_init':
/home/homeassistant/WORK/frotz/src/curses/ux_audio.c:112: undefined reference to `sem_init'
/home/homeassistant/WORK/frotz/src/curses/ux_audio.c:113: undefined reference to `sem_init'
/home/homeassistant/WORK/frotz/src/curses/ux_audio.c:114: undefined reference to `sem_post'
(homeassistant) $ cd ~/WORK/frotz/                                                                                                                                                                                                   [69/716]
(homeassistant) $ make clean
rm -f src/*.h src/*.a src/common/defines.h \
        src/common/git_hash.h src/curses/defines.h \
        frotz*.tar.gz
find . -iname *.o -delete
(homeassistant) $ make
Creating src/common/git_hash.h
Generating src/common/defines.h
cc -Wall -Wextra -std=gnu99 -g -I/usr/local/include -lao -ldl -lpthread -lm -lsndfile -lvorbisfile -lmodplug -lsamplerate -fPIC -fpic -o src/common/buffer.o -c src/common/buffer.c
cc -Wall -Wextra -std=gnu99 -g -I/usr/local/include -lao -ldl -lpthread -lm -lsndfile -lvorbisfile -lmodplug -lsamplerate -fPIC -fpic -o src/common/err.o -c src/common/err.c
cc -Wall -Wextra -std=gnu99 -g -I/usr/local/include -lao -ldl -lpthread -lm -lsndfile -lvorbisfile -lmodplug -lsamplerate -fPIC -fpic -o src/common/fastmem.o -c src/common/fastmem.c
cc -Wall -Wextra -std=gnu99 -g -I/usr/local/include -lao -ldl -lpthread -lm -lsndfile -lvorbisfile -lmodplug -lsamplerate -fPIC -fpic -o src/common/files.o -c src/common/files.c
cc -Wall -Wextra -std=gnu99 -g -I/usr/local/include -lao -ldl -lpthread -lm -lsndfile -lvorbisfile -lmodplug -lsamplerate -fPIC -fpic -o src/common/hotkey.o -c src/common/hotkey.c
cc -Wall -Wextra -std=gnu99 -g -I/usr/local/include -lao -ldl -lpthread -lm -lsndfile -lvorbisfile -lmodplug -lsamplerate -fPIC -fpic -o src/common/input.o -c src/common/input.c
cc -Wall -Wextra -std=gnu99 -g -I/usr/local/include -lao -ldl -lpthread -lm -lsndfile -lvorbisfile -lmodplug -lsamplerate -fPIC -fpic -o src/common/main.o -c src/common/main.c
cc -Wall -Wextra -std=gnu99 -g -I/usr/local/include -lao -ldl -lpthread -lm -lsndfile -lvorbisfile -lmodplug -lsamplerate -fPIC -fpic -o src/common/math.o -c src/common/math.c
cc -Wall -Wextra -std=gnu99 -g -I/usr/local/include -lao -ldl -lpthread -lm -lsndfile -lvorbisfile -lmodplug -lsamplerate -fPIC -fpic -o src/common/object.o -c src/common/object.c
cc -Wall -Wextra -std=gnu99 -g -I/usr/local/include -lao -ldl -lpthread -lm -lsndfile -lvorbisfile -lmodplug -lsamplerate -fPIC -fpic -o src/common/process.o -c src/common/process.c
cc -Wall -Wextra -std=gnu99 -g -I/usr/local/include -lao -ldl -lpthread -lm -lsndfile -lvorbisfile -lmodplug -lsamplerate -fPIC -fpic -o src/common/quetzal.o -c src/common/quetzal.c
src/common/quetzal.c: In function ‘restore_quetzal’:
src/common/quetzal.c:328:6: warning: this statement may fall through [-Wimplicit-fallthrough=]
   if (!(progress & GOT_MEMORY)) /* Don't complain if two. */
      ^
src/common/quetzal.c:381:6: note: here
      case ID_UMem:
      ^~~~
src/common/quetzal.c:382:6: warning: this statement may fall through [-Wimplicit-fallthrough=]
   if (!(progress & GOT_MEMORY)) /* Don't complain if two. */
      ^
src/common/quetzal.c:399:6: note: here
      default:
      ^~~~~~~
cc -Wall -Wextra -std=gnu99 -g -I/usr/local/include -lao -ldl -lpthread -lm -lsndfile -lvorbisfile -lmodplug -lsamplerate -fPIC -fpic -o src/common/random.o -c src/common/random.c
cc -Wall -Wextra -std=gnu99 -g -I/usr/local/include -lao -ldl -lpthread -lm -lsndfile -lvorbisfile -lmodplug -lsamplerate -fPIC -fpic -o src/common/redirect.o -c src/common/redirect.c
cc -Wall -Wextra -std=gnu99 -g -I/usr/local/include -lao -ldl -lpthread -lm -lsndfile -lvorbisfile -lmodplug -lsamplerate -fPIC -fpic -o src/common/screen.o -c src/common/screen.c
cc -Wall -Wextra -std=gnu99 -g -I/usr/local/include -lao -ldl -lpthread -lm -lsndfile -lvorbisfile -lmodplug -lsamplerate -fPIC -fpic -o src/common/sound.o -c src/common/sound.c
cc -Wall -Wextra -std=gnu99 -g -I/usr/local/include -lao -ldl -lpthread -lm -lsndfile -lvorbisfile -lmodplug -lsamplerate -fPIC -fpic -o src/common/stream.o -c src/common/stream.c
cc -Wall -Wextra -std=gnu99 -g -I/usr/local/include -lao -ldl -lpthread -lm -lsndfile -lvorbisfile -lmodplug -lsamplerate -fPIC -fpic -o src/common/table.o -c src/common/table.c
cc -Wall -Wextra -std=gnu99 -g -I/usr/local/include -lao -ldl -lpthread -lm -lsndfile -lvorbisfile -lmodplug -lsamplerate -fPIC -fpic -o src/common/text.o -c src/common/text.c
cc -Wall -Wextra -std=gnu99 -g -I/usr/local/include -lao -ldl -lpthread -lm -lsndfile -lvorbisfile -lmodplug -lsamplerate -fPIC -fpic -o src/common/variable.o -c src/common/variable.c
ar rc src/frotz_common.a src/common/git_hash.h src/common/defines.h src/common/buffer.o src/common/err.o src/common/fastmem.o src/common/files.o src/common/hotkey.o src/common/input.o src/common/main.o src/common/math.o src/common/object
.o src/common/process.o src/common/quetzal.o src/common/random.o src/common/redirect.o src/common/screen.o src/common/sound.o src/common/stream.o src/common/table.o src/common/text.o src/common/variable.o
/usr/bin/ranlib src/frotz_common.a
Generating src/curses/defines.h
cc -Wall -Wextra -std=gnu99 -g -I/usr/local/include -lao -ldl -lpthread -lm -lsndfile -lvorbisfile -lmodplug -lsamplerate -fPIC -fpic -o src/curses/ux_init.o -c src/curses/ux_init.c
cc -Wall -Wextra -std=gnu99 -g -I/usr/local/include -lao -ldl -lpthread -lm -lsndfile -lvorbisfile -lmodplug -lsamplerate -fPIC -fpic -o src/curses/ux_input.o -c src/curses/ux_input.c
cc -Wall -Wextra -std=gnu99 -g -I/usr/local/include -lao -ldl -lpthread -lm -lsndfile -lvorbisfile -lmodplug -lsamplerate -fPIC -fpic -o src/curses/ux_pic.o -c src/curses/ux_pic.c
cc -Wall -Wextra -std=gnu99 -g -I/usr/local/include -lao -ldl -lpthread -lm -lsndfile -lvorbisfile -lmodplug -lsamplerate -fPIC -fpic -o src/curses/ux_screen.o -c src/curses/ux_screen.c
cc -Wall -Wextra -std=gnu99 -g -I/usr/local/include -lao -ldl -lpthread -lm -lsndfile -lvorbisfile -lmodplug -lsamplerate -fPIC -fpic -o src/curses/ux_text.o -c src/curses/ux_text.c
cc -Wall -Wextra -std=gnu99 -g -I/usr/local/include -lao -ldl -lpthread -lm -lsndfile -lvorbisfile -lmodplug -lsamplerate -fPIC -fpic -o src/curses/ux_blorb.o -c src/curses/ux_blorb.c
cc -Wall -Wextra -std=gnu99 -g -I/usr/local/include -lao -ldl -lpthread -lm -lsndfile -lvorbisfile -lmodplug -lsamplerate -fPIC -fpic -o src/curses/ux_audio.o -c src/curses/ux_audio.c
cc -Wall -Wextra -std=gnu99 -g -I/usr/local/include -lao -ldl -lpthread -lm -lsndfile -lvorbisfile -lmodplug -lsamplerate -fPIC -fpic -o src/curses/ux_resource.o -c src/curses/ux_resource.c
cc -Wall -Wextra -std=gnu99 -g -I/usr/local/include -lao -ldl -lpthread -lm -lsndfile -lvorbisfile -lmodplug -lsamplerate -fPIC -fpic -o src/curses/ux_audio_none.o -c src/curses/ux_audio_none.c
cc -Wall -Wextra -std=gnu99 -g -I/usr/local/include -lao -ldl -lpthread -lm -lsndfile -lvorbisfile -lmodplug -lsamplerate -fPIC -fpic -o src/curses/ux_locks.o -c src/curses/ux_locks.c
ar rc src/frotz_curses.a src/curses/defines.h src/curses/ux_init.o src/curses/ux_input.o src/curses/ux_pic.o src/curses/ux_screen.o src/curses/ux_text.o src/curses/ux_blorb.o src/curses/ux_audio.o src/curses/ux_resource.o src/curses/ux_a
udio_none.o src/curses/ux_locks.o
/usr/bin/ranlib src/frotz_curses.a
cc -Wall -Wextra -std=gnu99 -g -I/usr/local/include -lao -ldl -lpthread -lm -lsndfile -lvorbisfile -lmodplug -lsamplerate -fPIC -fpic -o src/blorb/blorblib.o -c src/blorb/blorblib.c
ar rc src/blorblib.a src/blorb/blorblib.o
/usr/bin/ranlib src/blorblib.a
cc -Wall -Wextra -std=gnu99 -g -I/usr/local/include -lao -ldl -lpthread -lm -lsndfile -lvorbisfile -lmodplug -lsamplerate src/frotz_common.a src/frotz_curses.a src/blorblib.a -o frotz -lncurses -L/usr/local/lib
src/frotz_curses.a(ux_audio.o): In function `audiobuffer_init':
/home/homeassistant/WORK/frotz/src/curses/ux_audio.c:112: undefined reference to `sem_init'
/home/homeassistant/WORK/frotz/src/curses/ux_audio.c:113: undefined reference to `sem_init'
/home/homeassistant/WORK/frotz/src/curses/ux_audio.c:114: undefined reference to `sem_post'
(homeassistant) $ cd ~/WORK/frotz/                                                                                                                                                                                                   [69/716]
(homeassistant) $ make clean
rm -f src/*.h src/*.a src/common/defines.h \
        src/common/git_hash.h src/curses/defines.h \
        frotz*.tar.gz
find . -iname *.o -delete
(homeassistant) $ make
Creating src/common/git_hash.h
Generating src/common/defines.h
cc -Wall -Wextra -std=gnu99 -g -I/usr/local/include -lao -ldl -lpthread -lm -lsndfile -lvorbisfile -lmodplug -lsamplerate -fPIC -fpic -o src/common/buffer.o -c src/common/buffer.c
cc -Wall -Wextra -std=gnu99 -g -I/usr/local/include -lao -ldl -lpthread -lm -lsndfile -lvorbisfile -lmodplug -lsamplerate -fPIC -fpic -o src/common/err.o -c src/common/err.c
cc -Wall -Wextra -std=gnu99 -g -I/usr/local/include -lao -ldl -lpthread -lm -lsndfile -lvorbisfile -lmodplug -lsamplerate -fPIC -fpic -o src/common/fastmem.o -c src/common/fastmem.c
cc -Wall -Wextra -std=gnu99 -g -I/usr/local/include -lao -ldl -lpthread -lm -lsndfile -lvorbisfile -lmodplug -lsamplerate -fPIC -fpic -o src/common/files.o -c src/common/files.c
cc -Wall -Wextra -std=gnu99 -g -I/usr/local/include -lao -ldl -lpthread -lm -lsndfile -lvorbisfile -lmodplug -lsamplerate -fPIC -fpic -o src/common/hotkey.o -c src/common/hotkey.c
cc -Wall -Wextra -std=gnu99 -g -I/usr/local/include -lao -ldl -lpthread -lm -lsndfile -lvorbisfile -lmodplug -lsamplerate -fPIC -fpic -o src/common/input.o -c src/common/input.c
cc -Wall -Wextra -std=gnu99 -g -I/usr/local/include -lao -ldl -lpthread -lm -lsndfile -lvorbisfile -lmodplug -lsamplerate -fPIC -fpic -o src/common/main.o -c src/common/main.c
cc -Wall -Wextra -std=gnu99 -g -I/usr/local/include -lao -ldl -lpthread -lm -lsndfile -lvorbisfile -lmodplug -lsamplerate -fPIC -fpic -o src/common/math.o -c src/common/math.c
cc -Wall -Wextra -std=gnu99 -g -I/usr/local/include -lao -ldl -lpthread -lm -lsndfile -lvorbisfile -lmodplug -lsamplerate -fPIC -fpic -o src/common/object.o -c src/common/object.c
cc -Wall -Wextra -std=gnu99 -g -I/usr/local/include -lao -ldl -lpthread -lm -lsndfile -lvorbisfile -lmodplug -lsamplerate -fPIC -fpic -o src/common/process.o -c src/common/process.c
cc -Wall -Wextra -std=gnu99 -g -I/usr/local/include -lao -ldl -lpthread -lm -lsndfile -lvorbisfile -lmodplug -lsamplerate -fPIC -fpic -o src/common/quetzal.o -c src/common/quetzal.c
src/common/quetzal.c: In function ‘restore_quetzal’:
src/common/quetzal.c:328:6: warning: this statement may fall through [-Wimplicit-fallthrough=]
   if (!(progress & GOT_MEMORY)) /* Don't complain if two. */
      ^
src/common/quetzal.c:381:6: note: here
      case ID_UMem:
      ^~~~
src/common/quetzal.c:382:6: warning: this statement may fall through [-Wimplicit-fallthrough=]
   if (!(progress & GOT_MEMORY)) /* Don't complain if two. */
      ^
src/common/quetzal.c:399:6: note: here
      default:
      ^~~~~~~
cc -Wall -Wextra -std=gnu99 -g -I/usr/local/include -lao -ldl -lpthread -lm -lsndfile -lvorbisfile -lmodplug -lsamplerate -fPIC -fpic -o src/common/random.o -c src/common/random.c
cc -Wall -Wextra -std=gnu99 -g -I/usr/local/include -lao -ldl -lpthread -lm -lsndfile -lvorbisfile -lmodplug -lsamplerate -fPIC -fpic -o src/common/redirect.o -c src/common/redirect.c
cc -Wall -Wextra -std=gnu99 -g -I/usr/local/include -lao -ldl -lpthread -lm -lsndfile -lvorbisfile -lmodplug -lsamplerate -fPIC -fpic -o src/common/screen.o -c src/common/screen.c
cc -Wall -Wextra -std=gnu99 -g -I/usr/local/include -lao -ldl -lpthread -lm -lsndfile -lvorbisfile -lmodplug -lsamplerate -fPIC -fpic -o src/common/sound.o -c src/common/sound.c
cc -Wall -Wextra -std=gnu99 -g -I/usr/local/include -lao -ldl -lpthread -lm -lsndfile -lvorbisfile -lmodplug -lsamplerate -fPIC -fpic -o src/common/stream.o -c src/common/stream.c
cc -Wall -Wextra -std=gnu99 -g -I/usr/local/include -lao -ldl -lpthread -lm -lsndfile -lvorbisfile -lmodplug -lsamplerate -fPIC -fpic -o src/common/table.o -c src/common/table.c
cc -Wall -Wextra -std=gnu99 -g -I/usr/local/include -lao -ldl -lpthread -lm -lsndfile -lvorbisfile -lmodplug -lsamplerate -fPIC -fpic -o src/common/text.o -c src/common/text.c
cc -Wall -Wextra -std=gnu99 -g -I/usr/local/include -lao -ldl -lpthread -lm -lsndfile -lvorbisfile -lmodplug -lsamplerate -fPIC -fpic -o src/common/variable.o -c src/common/variable.c
ar rc src/frotz_common.a src/common/git_hash.h src/common/defines.h src/common/buffer.o src/common/err.o src/common/fastmem.o src/common/files.o src/common/hotkey.o src/common/input.o src/common/main.o src/common/math.o src/common/object
.o src/common/process.o src/common/quetzal.o src/common/random.o src/common/redirect.o src/common/screen.o src/common/sound.o src/common/stream.o src/common/table.o src/common/text.o src/common/variable.o
/usr/bin/ranlib src/frotz_common.a
Generating src/curses/defines.h
cc -Wall -Wextra -std=gnu99 -g -I/usr/local/include -lao -ldl -lpthread -lm -lsndfile -lvorbisfile -lmodplug -lsamplerate -fPIC -fpic -o src/curses/ux_init.o -c src/curses/ux_init.c
cc -Wall -Wextra -std=gnu99 -g -I/usr/local/include -lao -ldl -lpthread -lm -lsndfile -lvorbisfile -lmodplug -lsamplerate -fPIC -fpic -o src/curses/ux_input.o -c src/curses/ux_input.c
cc -Wall -Wextra -std=gnu99 -g -I/usr/local/include -lao -ldl -lpthread -lm -lsndfile -lvorbisfile -lmodplug -lsamplerate -fPIC -fpic -o src/curses/ux_pic.o -c src/curses/ux_pic.c
cc -Wall -Wextra -std=gnu99 -g -I/usr/local/include -lao -ldl -lpthread -lm -lsndfile -lvorbisfile -lmodplug -lsamplerate -fPIC -fpic -o src/curses/ux_screen.o -c src/curses/ux_screen.c
cc -Wall -Wextra -std=gnu99 -g -I/usr/local/include -lao -ldl -lpthread -lm -lsndfile -lvorbisfile -lmodplug -lsamplerate -fPIC -fpic -o src/curses/ux_text.o -c src/curses/ux_text.c
cc -Wall -Wextra -std=gnu99 -g -I/usr/local/include -lao -ldl -lpthread -lm -lsndfile -lvorbisfile -lmodplug -lsamplerate -fPIC -fpic -o src/curses/ux_blorb.o -c src/curses/ux_blorb.c
cc -Wall -Wextra -std=gnu99 -g -I/usr/local/include -lao -ldl -lpthread -lm -lsndfile -lvorbisfile -lmodplug -lsamplerate -fPIC -fpic -o src/curses/ux_audio.o -c src/curses/ux_audio.c
cc -Wall -Wextra -std=gnu99 -g -I/usr/local/include -lao -ldl -lpthread -lm -lsndfile -lvorbisfile -lmodplug -lsamplerate -fPIC -fpic -o src/curses/ux_resource.o -c src/curses/ux_resource.c
cc -Wall -Wextra -std=gnu99 -g -I/usr/local/include -lao -ldl -lpthread -lm -lsndfile -lvorbisfile -lmodplug -lsamplerate -fPIC -fpic -o src/curses/ux_audio_none.o -c src/curses/ux_audio_none.c
cc -Wall -Wextra -std=gnu99 -g -I/usr/local/include -lao -ldl -lpthread -lm -lsndfile -lvorbisfile -lmodplug -lsamplerate -fPIC -fpic -o src/curses/ux_locks.o -c src/curses/ux_locks.c
ar rc src/frotz_curses.a src/curses/defines.h src/curses/ux_init.o src/curses/ux_input.o src/curses/ux_pic.o src/curses/ux_screen.o src/curses/ux_text.o src/curses/ux_blorb.o src/curses/ux_audio.o src/curses/ux_resource.o src/curses/ux_a
udio_none.o src/curses/ux_locks.o
/usr/bin/ranlib src/frotz_curses.a
cc -Wall -Wextra -std=gnu99 -g -I/usr/local/include -lao -ldl -lpthread -lm -lsndfile -lvorbisfile -lmodplug -lsamplerate -fPIC -fpic -o src/blorb/blorblib.o -c src/blorb/blorblib.c
ar rc src/blorblib.a src/blorb/blorblib.o
/usr/bin/ranlib src/blorblib.a
cc -Wall -Wextra -std=gnu99 -g -I/usr/local/include -lao -ldl -lpthread -lm -lsndfile -lvorbisfile -lmodplug -lsamplerate src/frotz_common.a src/frotz_curses.a src/blorblib.a -o frotz -lncurses -L/usr/local/lib
src/frotz_curses.a(ux_audio.o): In function `audiobuffer_init':
/home/homeassistant/WORK/frotz/src/curses/ux_audio.c:112: undefined reference to `sem_init'
/home/homeassistant/WORK/frotz/src/curses/ux_audio.c:113: undefined reference to `sem_init'
/home/homeassistant/WORK/frotz/src/curses/ux_audio.c:114: undefined reference to `sem_post'
/home/homeassistant/WORK/frotz/src/curses/ux_audio.c:263: undefined reference to `pthread_join'
/home/homeassistant/WORK/frotz/src/curses/ux_audio.c:268: undefined reference to `sem_post'
/home/homeassistant/WORK/frotz/src/curses/ux_audio.c:269: undefined reference to `pthread_join'
src/frotz_curses.a(ux_audio.o): In function `mixer':
/home/homeassistant/WORK/frotz/src/curses/ux_audio.c:328: undefined reference to `ao_initialize'
/home/homeassistant/WORK/frotz/src/curses/ux_audio.c:329: undefined reference to `ao_default_driver_id'
/home/homeassistant/WORK/frotz/src/curses/ux_audio.c:348: undefined reference to `sem_wait'
/home/homeassistant/WORK/frotz/src/curses/ux_audio.c:351: undefined reference to `sem_wait'
/home/homeassistant/WORK/frotz/src/curses/ux_audio.c:357: undefined reference to `ao_open_live'
/home/homeassistant/WORK/frotz/src/curses/ux_audio.c:365: undefined reference to `ao_play'
/home/homeassistant/WORK/frotz/src/curses/ux_audio.c:371: undefined reference to `ao_play'
/home/homeassistant/WORK/frotz/src/curses/ux_audio.c:415: undefined reference to `ao_play'
/home/homeassistant/WORK/frotz/src/curses/ux_audio.c:420: undefined reference to `ao_close'
/home/homeassistant/WORK/frotz/src/curses/ux_audio.c:427: undefined reference to `sem_post'
/home/homeassistant/WORK/frotz/src/curses/ux_audio.c:430: undefined reference to `sem_post'
/home/homeassistant/WORK/frotz/src/curses/ux_audio.c:434: undefined reference to `sem_getvalue'
/home/homeassistant/WORK/frotz/src/curses/ux_audio.c:437: undefined reference to `sem_post'
/home/homeassistant/WORK/frotz/src/curses/ux_audio.c:440: undefined reference to `sem_getvalue'
/home/homeassistant/WORK/frotz/src/curses/ux_audio.c:442: undefined reference to `sem_post'
src/frotz_curses.a(ux_audio.o): In function `playaiff':
/home/homeassistant/WORK/frotz/src/curses/ux_audio.c:548: undefined reference to `sem_post'
/home/homeassistant/WORK/frotz/src/curses/ux_audio.c:555: undefined reference to `sf_open_fd'
/home/homeassistant/WORK/frotz/src/curses/ux_audio.c:566: undefined reference to `src_new'
/home/homeassistant/WORK/frotz/src/curses/ux_audio.c:567: undefined reference to `src_strerror'
/home/homeassistant/WORK/frotz/src/curses/ux_audio.c:582: undefined reference to `sem_wait'
/home/homeassistant/WORK/frotz/src/curses/ux_audio.c:587: undefined reference to `sf_readf_float'
/home/homeassistant/WORK/frotz/src/curses/ux_audio.c:595: undefined reference to `src_process'
/home/homeassistant/WORK/frotz/src/curses/ux_audio.c:596: undefined reference to `src_strerror'
/home/homeassistant/WORK/frotz/src/curses/ux_audio.c:617: undefined reference to `sem_post'
/home/homeassistant/WORK/frotz/src/curses/ux_audio.c:629: undefined reference to `sem_post'
/home/homeassistant/WORK/frotz/src/curses/ux_audio.c:645: undefined reference to `sf_close'
src/frotz_curses.a(ux_audio.o): In function `playmusic':
/home/homeassistant/WORK/frotz/src/curses/ux_audio.c:663: undefined reference to `sem_post'
src/frotz_curses.a(ux_audio.o): In function `playmod':
/home/homeassistant/WORK/frotz/src/curses/ux_audio.c:704: undefined reference to `ModPlug_GetSettings'
/home/homeassistant/WORK/frotz/src/curses/ux_audio.c:715: undefined reference to `ModPlug_SetSettings'
/home/homeassistant/WORK/frotz/src/curses/ux_audio.c:720: undefined reference to `ModPlug_Load'
/home/homeassistant/WORK/frotz/src/curses/ux_audio.c:729: undefined reference to `ModPlug_SetMasterVolume'
/home/homeassistant/WORK/frotz/src/curses/ux_audio.c:736: undefined reference to `sem_wait'
/home/homeassistant/WORK/frotz/src/curses/ux_audio.c:742: undefined reference to `ModPlug_Read'
/home/homeassistant/WORK/frotz/src/curses/ux_audio.c:746: undefined reference to `sem_post'
/home/homeassistant/WORK/frotz/src/curses/ux_audio.c:753: undefined reference to `sem_post'
/home/homeassistant/WORK/frotz/src/curses/ux_audio.c:755: undefined reference to `ModPlug_Unload'
src/frotz_curses.a(ux_audio.o): In function `playogg':
/home/homeassistant/WORK/frotz/src/curses/ux_audio.c:821: undefined reference to `ov_open_callbacks'
/home/homeassistant/WORK/frotz/src/curses/ux_audio.c:826: undefined reference to `ov_info'
/home/homeassistant/WORK/frotz/src/curses/ux_audio.c:839: undefined reference to `ov_pcm_total'
/home/homeassistant/WORK/frotz/src/curses/ux_audio.c:845: undefined reference to `sem_wait'
/home/homeassistant/WORK/frotz/src/curses/ux_audio.c:850: undefined reference to `ov_read'
/home/homeassistant/WORK/frotz/src/curses/ux_audio.c:864: undefined reference to `sem_post'
/home/homeassistant/WORK/frotz/src/curses/ux_audio.c:871: undefined reference to `sem_post'
/home/homeassistant/WORK/frotz/src/curses/ux_audio.c:873: undefined reference to `ov_clear'
collect2: error: ld returned 1 exit status
Makefile:156: recipe for target 'frotz' failed
make: *** [frotz] Error 1

Don't stress too hard if you don;t see it like I said I was able to compile it just seemed odd on a pretty stock distro.

escondida commented 6 years ago

That "Copyright (C) 2017 Free Software Foundation, Inc." bit means it is GCC, whatever Ubuntu may claim (-: .

Does the build still fail if you run make PREFIX=/usr, out of curiosity (for the record, it doesn't fail here regardless of specifying the prefix, but just in the interest of tracking this down...)

tschmidty69 commented 6 years ago

Oh, yeah, duh. And no same failure

escondida commented 6 years ago

tschmidty69, I've submitted a pull request for a commit that adds the various -llibs to LDFLAGS rather than CFLAGS; adding them to CFLAGS was my mistake in the first place. Does that patch fix it for you?

tschmidty69 commented 6 years ago

It didn't but that was the right thing to do, I just submitted a small PR that just moves the ldflags and curses to the end of the line and everything compiles fine for me now.

DavidGriffith commented 6 years ago

@tschmidty69, I just merged your changes. Would you please verify that things are working for you now?

tschmidty69 commented 6 years ago

Sorry this took so long to get back to you (traveling for the last few weeks), but yes everything compiled perfectly using the master branch.