mywave82 / opencubicplayer

Open Cubic Player (unix fork). Music visualizer for various tracked music formats (amiga modules, S3M, IT), chiptunes and other formats related to demoscene
https://stian.cubic.org/project-ocp.php
GNU General Public License v2.0
292 stars 19 forks source link

no rule to make target after fresh git pull and ./configure #107

Closed bkw777 closed 1 year ago

bkw777 commented 1 year ago
bkw@fw:~/src/opencubicplayer$ git pull
Already up to date.
bkw@fw:~/src/opencubicplayer$ ./configure --with-unifontdir-otf=/usr/share/fonts/opentype/unifont 
checking build system type... x86_64-pc-linux-gnu
checking host system type... x86_64-pc-linux-gnu
checking GIT submodules are checked out... ok
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 the compiler supports GNU C... yes
checking whether gcc accepts -g... yes
checking for gcc option to enable C11 features... none needed
checking for stdio.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for strings.h... yes
checking for sys/stat.h... yes
checking for sys/types.h... yes
checking for unistd.h... yes
checking for sys/time.h... yes
checking for gcc... (cached) gcc
checking whether the compiler supports GNU C... (cached) yes
checking whether gcc accepts -g... (cached) yes
checking for gcc option to enable C11 features... (cached) none needed
checking how to run the C preprocessor... gcc -E
checking for x86_64-pc-linux-gnu-gcc... no
checking for gcc... gcc
checking whether the compiler supports GNU C... yes
checking whether gcc accepts -g... yes
checking for gcc option to enable C11 features... none needed
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 how to run the C preprocessor... gcc -E
checking for g++... g++
checking whether the compiler supports GNU C++... yes
checking whether g++ accepts -g... yes
checking for g++ option to enable C++11 features... none needed
checking how to run the C preprocessor... gcc -E
checking how to run the C++ preprocessor... g++ -E
checking whether make sets $(MAKE)... yes
checking whether byte ordering is bigendian... no
checking for known broken gcc versions... 12, ok
checking for broken signed char to signed int in loops (gcc version 4.1.1)... ok
checking for PIC... -fPIC
checking for memmem... yes
checking for getopt... yes
checking for getpwuid... yes
checking for popen... yes
checking for qsort... yes
checking for gettimeofday... yes
checking for sleep... yes
checking for sysconf... yes
checking for strerror... yes
checking for strdup... yes
checking for strstr... yes
checking for strupr... no
checking for getcwd... yes
checking for snprintf... yes
checking for usleep... yes
checking for vsnprintf... yes
checking for strncasecmp... yes
checking for mkstemp... yes
checking for strlcpy... no
checking for strlcat... no
checking for sqrt... no
checking for sqrt in -lm... yes
checking for dirent.h that defines DIR... yes
checking for library containing opendir... none required
checking for struct dirent.d_type... yes
checking for dirent.h... yes
checking for fcntl.h... yes
checking for grp.h... yes
checking for getopt.h... yes
checking for ndir.h... no
checking for sys/io... no
checking for sys/ndir.h... no
checking for sys/dir.h... yes
checking for stdint.h... (cached) yes
checking for inttypes.h... (cached) yes
checking for byteswap.h... yes
checking for unistd.h... (cached) yes
checking for limits.h... yes
checking for string.h... (cached) yes
checking for strings.h... (cached) yes
checking for errno.h... yes
checking for sys/cdefs.h... yes
checking for sys/stat.h... (cached) yes
checking for sys/time.h... (cached) yes
checking for sys/types.h... (cached) yes
checking for sys/param.h... yes
checking for machine/endian.h... no
checking for pwd.h... yes
checking for Availability.h... no
checking for AvailabilityMacros.h... no
checking for AvailabilityVersions.h... no
checking for getpwnam... yes
checking for pkg-config... /usr/bin/pkg-config
checking pkg-config is at least version 0.9.0... yes
checking for ncursesw via pkg-config... yes
checking for working ncursesw/curses.h... yes
checking for working ncursesw.h... no
checking for working ncurses.h... yes
checking for resize_term... yes
checking for zlibVersion in -lz... yes
checking for zlib.h... yes
checking for BZ2_bzDecompress in -lbz2... yes
checking for bzlib.h... yes
checking for dlopen... yes
checking for mad... yes
checking for libjpeg... yes
libjpeg flags ...  -ljpeg
checking for libpng... yes
checking for ogg... yes
checking for vorbis... yes
checking for vorbisfile... yes
checking for flac... yes
checking for X11/extensions/xf86vmode.h... yes
checking for X11/extensions/XShm.h... yes
checking for X11/xpm.h... yes
checking for XpmCreatePixmapFromData in -lXpm... yes
checking for XShmQueryExtension in -lXext... yes
checking for XF86VidModeQueryExtension in -lXxf86vm... yes
checking for sdl2 >= 2.0.0... yes
checking for freetype2... yes
checking for /usr/local/share/fonts/truetype/unifont/unifont.ttf... no
checking for /usr/share/fonts/opentype/unifont/unifont.otf... yes
checking for /usr/local/share/fonts/truetype/unifont/unifont_csur.ttf... no
checking for /usr/share/fonts/opentype/unifont/unifont_csur.otf... yes
checking for /usr/local/share/fonts/truetype/unifont/unifont_upper.ttf... no
checking for /usr/share/fonts/opentype/unifont/unifont_upper.otf... yes
checking whether g++ supports C++14 features with -std=c++14... yes
checking for main in -lstdc++... yes
checking for main in -lstdc++... (cached) yes
checking for std::basic_istream<char>... yes
checking for ldexp... yes
checking for long long... yes
checking for long double... yes
checking GIT submodules are checked out... ok
checking whether g++ supports C++14 features with -std=c++14... (cached) yes
checking for xa... /usr/bin/xa
checking for hexdump... /usr/bin/hexdump
checking for perl... /usr/bin/perl
checking whether C++ compiler accepts -fvisibility=hidden -fvisibility-inlines-hidden... yes
checking size of short... 2
checking size of int... 4
checking for g++ -std=c++14 options needed to detect all undeclared functions... none needed
checking whether strcasecmp is declared... yes
checking for strcasecmp... yes
checking whether strncasecmp is declared... yes
checking for strncasecmp... (cached) yes
checking for working bool... yes
checking for log1p... yes
checking for __builtin_expect... yes
checking for libdiscid... yes
checking for libcjson... yes
checking for alsa... yes
checking for libancient... yes
checking whether g++ supports C++17 features with -std=c++17... yes
checking for linux/limits.h... yes
checking for linux/major.h... yes
checking for linux/fb.h... yes
checking for linux/cdrom.h... yes
checking for oss... no
checking for sys/soundcard.h... yes
checking for CoreServices/CoreServices.h... no
checking for makeinfo... no
checking Include lzw support (used by GIF and arcZIP)... yes
checking Include lzh support (used by .ym file support)... yes
checking "cp -f implies --remove-destination"... no
checking for iconv_open... yes
checking for libgme... no
checking for update-mime-database... update-mime-database
checking for desktop-file-install... desktop-file-install
checking for update-desktop-database... update-desktop-database
configure: creating ./config.status
config.status: creating Rules.make
config.status: creating Makefile
config.status: creating goodies/helpc/Makefile
config.status: creating goodies/pack/Makefile
config.status: creating ocp.ini
config.status: creating desktop/opencubicplayer.desktop
config.status: creating doc/opencp.dox
config.status: creating doc/texi/faq.texi
config.status: creating doc/texi/ocp.texi
config.status: creating doc/ocp.1
config.status: creating playsid/libsidplayfp-git/src/builders/resid-builder/resid/siddefs.h
config.status: creating playsid/libsidplayfp-git/src/builders/residfp-builder/residfp/siddefs-fp.h
config.status: creating playopl/libbinio-git/src/binio.h
config.status: creating playopl/adplug-git/src/version.h
config.status: creating haiku/ocp.rdef
config.status: creating mingw/ocp.rc
config.status: creating config.h
config.status: config.h is unchanged
config.status: creating playsid/sidplayfp-config/config.h
config.status: playsid/sidplayfp-config/config.h is unchanged
debug:             OFF
builtin:           core
adplug:            GIT/builtin
mad:               ON
sidplayfp:         GIT/builtin
FLAC:              ON
GME:               OFF
x11:               ON
SDL:               OFF
SDL2:              ON
ALSA:              ON
OSS:               ON
CoreAudio:         OFF
linux cdrom:       ON
linux framebuffer: ON
include LZW:       ON
include LZH:       ON
include DumpTools: OFF
unifont truetype:  /usr/local/share/fonts/truetype/unifont/unifont.ttf /usr/local/share/fonts/truetype/unifont/unifont_csur.ttf /usr/local/share/fonts/truetype/unifont/unifont_upper.ttf
unifont opentype:  /usr/share/fonts/opentype/unifont/unifont.otf /usr/share/fonts/opentype/unifont/unifont_csur.otf /usr/share/fonts/opentype/unifont/unifont_upper.otf
bkw@fw:~/src/opencubicplayer$ make clean all
for i in boot cpiface dev doc devp devw filesel goodies help medialib playay playcda playflac playgmd playtimidity playhvl playit playogg playopl plugins playmp2 playsid playwav playxm playym stuff mingw ; do \
       make -C $i TOPDIR=.././ clean || exit 1 ;\
done
make[1]: Entering directory '/home/bkw/src/opencubicplayer/boot'
rm -f *.o *.a *.so
make[1]: Leaving directory '/home/bkw/src/opencubicplayer/boot'
make[1]: Entering directory '/home/bkw/src/opencubicplayer/cpiface'
rm -f *.o *.so
make[1]: Leaving directory '/home/bkw/src/opencubicplayer/cpiface'
make[1]: Entering directory '/home/bkw/src/opencubicplayer/dev'
rm -f *.o *.so mchasm_test smpman_asminctest ringbuffer-unit-test
make[1]: Leaving directory '/home/bkw/src/opencubicplayer/dev'
make[1]: Entering directory '/home/bkw/src/opencubicplayer/doc'
make -C texi clean TOPDIR="../.././"
make[2]: Entering directory '/home/bkw/src/opencubicplayer/doc/texi'
rm -Rf ocp ocp.info ocp.info.gz html ocp_html
make[2]: Leaving directory '/home/bkw/src/opencubicplayer/doc/texi'
make[1]: Leaving directory '/home/bkw/src/opencubicplayer/doc'
make[1]: Entering directory '/home/bkw/src/opencubicplayer/devp'
rm -f *.o *.so
make[1]: Leaving directory '/home/bkw/src/opencubicplayer/devp'
make[1]: Entering directory '/home/bkw/src/opencubicplayer/devw'
rm -f *.o *.so test-dwmixqa test-dwmixa test-dwmixfa
make[1]: Leaving directory '/home/bkw/src/opencubicplayer/devw'
make[1]: Entering directory '/home/bkw/src/opencubicplayer/filesel'
make -C cdfs TOPDIR=../.././ clean
make[2]: Entering directory '/home/bkw/src/opencubicplayer/filesel/cdfs'
rm -f cdfs.so *.o
make[2]: Leaving directory '/home/bkw/src/opencubicplayer/filesel/cdfs'
rm -f *.o *.so adbmeta-test dirdb-test filesystem-bzip2-test filesystem-filehandle-cache-test filesystem-gzip-test filesystem-tar-test mdb-test
make[1]: Leaving directory '/home/bkw/src/opencubicplayer/filesel'
make[1]: Entering directory '/home/bkw/src/opencubicplayer/goodies'
make -C helpc TOPDIR=../.././ clean
make[2]: Entering directory '/home/bkw/src/opencubicplayer/goodies/helpc'
rm -f ocphhc *.o
make[2]: Leaving directory '/home/bkw/src/opencubicplayer/goodies/helpc'
make[1]: Leaving directory '/home/bkw/src/opencubicplayer/goodies'
make[1]: Entering directory '/home/bkw/src/opencubicplayer/help'
rm -f *.so *.o
make[1]: Leaving directory '/home/bkw/src/opencubicplayer/help'
make[1]: Entering directory '/home/bkw/src/opencubicplayer/medialib'
rm -f *.o *.so
make[1]: Leaving directory '/home/bkw/src/opencubicplayer/medialib'
make[1]: Entering directory '/home/bkw/src/opencubicplayer/playay'
rm -f *.o *.so dumpay
make[1]: Leaving directory '/home/bkw/src/opencubicplayer/playay'
make[1]: Entering directory '/home/bkw/src/opencubicplayer/playcda'
rm -f *.o *.so
make[1]: Leaving directory '/home/bkw/src/opencubicplayer/playcda'
make[1]: Entering directory '/home/bkw/src/opencubicplayer/playflac'
rm -f *.o *.so flactest
make[1]: Leaving directory '/home/bkw/src/opencubicplayer/playflac'
make[1]: Entering directory '/home/bkw/src/opencubicplayer/playgmd'
rm -f *.o *.so dumpstm dumps3m
make[1]: Leaving directory '/home/bkw/src/opencubicplayer/playgmd'
make[1]: Entering directory '/home/bkw/src/opencubicplayer/playtimidity'
rm -f *.o *.so calcnewt dumpmidi timidity-git/timidity/newton_table.c timidity-git/interface/*.o timidity-git/libarc/*.o timidity-git/timidity/*.o timidity-git/utils/*.o
make[1]: Leaving directory '/home/bkw/src/opencubicplayer/playtimidity'
make[1]: Entering directory '/home/bkw/src/opencubicplayer/playhvl'
rm -f *.o *.so dumpahx
make[1]: Leaving directory '/home/bkw/src/opencubicplayer/playhvl'
make[1]: Entering directory '/home/bkw/src/opencubicplayer/playit'
rm -f *.o *.so
make[1]: Leaving directory '/home/bkw/src/opencubicplayer/playit'
make[1]: Entering directory '/home/bkw/src/opencubicplayer/playogg'
rm -f *.o *.so
make[1]: Leaving directory '/home/bkw/src/opencubicplayer/playogg'
make[1]: Entering directory '/home/bkw/src/opencubicplayer/playopl'
rm -f *.o *.so
make[1]: Leaving directory '/home/bkw/src/opencubicplayer/playopl'
make[1]: Entering directory '/home/bkw/src/opencubicplayer/plugins'
rm -f *.o *.so
make[1]: Leaving directory '/home/bkw/src/opencubicplayer/plugins'
make[1]: Entering directory '/home/bkw/src/opencubicplayer/playmp2'
rm -f *.o *.so dumpid3
make[1]: Leaving directory '/home/bkw/src/opencubicplayer/playmp2'
make[1]: Entering directory '/home/bkw/src/opencubicplayer/playsid'
rm -f *.o *.so libsidplayfp-git/src/sidtune/sidplayer1.bin sidplayfp-git/libsidplayfp/src/sidtune/sidplayer2.bin dumpsid \
libsidplayfp-git/src/builders/resid-builder/resid/wave6581__ST.h \
libsidplayfp-git/src/builders/resid-builder/resid/wave6581_P_T.h \
libsidplayfp-git/src/builders/resid-builder/resid/wave6581_PS_.h \
libsidplayfp-git/src/builders/resid-builder/resid/wave6581_PST.h \
libsidplayfp-git/src/builders/resid-builder/resid/wave8580__ST.h \
libsidplayfp-git/src/builders/resid-builder/resid/wave8580_P_T.h \
libsidplayfp-git/src/builders/resid-builder/resid/wave8580_PS_.h \
libsidplayfp-git/src/builders/resid-builder/resid/wave8580_PST.h
make[1]: Leaving directory '/home/bkw/src/opencubicplayer/playsid'
make[1]: Entering directory '/home/bkw/src/opencubicplayer/playwav'
rm -f *.o *.so
make[1]: Leaving directory '/home/bkw/src/opencubicplayer/playwav'
make[1]: Entering directory '/home/bkw/src/opencubicplayer/playxm'
rm -f *.o *.so dumpmod
make[1]: Leaving directory '/home/bkw/src/opencubicplayer/playxm'
make[1]: Entering directory '/home/bkw/src/opencubicplayer/playym'
make -C lzh clean TOPDIR="../.././"
make[2]: Entering directory '/home/bkw/src/opencubicplayer/playym/lzh'
rm -f *~ *.o *.a
make[2]: Leaving directory '/home/bkw/src/opencubicplayer/playym/lzh'
make -C stsoundlib clean TOPDIR="../.././"
make[2]: Entering directory '/home/bkw/src/opencubicplayer/playym/stsoundlib'
rm -f *~ *.o *.a
make[2]: Leaving directory '/home/bkw/src/opencubicplayer/playym/stsoundlib'
rm -f *.o *.so
make[1]: Leaving directory '/home/bkw/src/opencubicplayer/playym'
make[1]: Entering directory '/home/bkw/src/opencubicplayer/stuff'
rm -f *.o *.so compat-test
make[1]: Leaving directory '/home/bkw/src/opencubicplayer/stuff'
make[1]: Entering directory '/home/bkw/src/opencubicplayer/mingw'
rm -f ocp.res
make[1]: Leaving directory '/home/bkw/src/opencubicplayer/mingw'
rm -f ocp libocp.so
make -C boot TOPDIR=.././
make[1]: Entering directory '/home/bkw/src/opencubicplayer/boot'
gcc -g -O2 -fPIC -D_DEFAULT_SOURCE -D_XOPEN_SOURCE=600 -Wall -I.././ plinkman.c -o plinkman.o -c
gcc -g -O2 -fPIC -D_DEFAULT_SOURCE -D_XOPEN_SOURCE=600 -Wall -I.././ compdate.c -o compdate.o -c
gcc -g -O2 -fPIC -D_DEFAULT_SOURCE -D_XOPEN_SOURCE=600 -Wall -I.././ psetting.c -o psetting.o -c
psetting.c: In function ‘cfReadINIFile’:
psetting.c:106:17: warning: ‘__builtin_strncpy’ specified bound 256 equals destination size [-Wstringop-truncation]
  106 |                 strncpy(comment, eol, COMMENTBUF_LEN);
      |                 ^
gcc -g -O2 -fPIC -D_DEFAULT_SOURCE -D_XOPEN_SOURCE=600 -Wall -I.././ pmain.c -o pmain.o -c
gcc -g -O2 -fPIC -D_DEFAULT_SOURCE -D_XOPEN_SOURCE=600 -Wall -I.././ console.c -o console.o -c
gcc -g -O2 -fPIC -D_DEFAULT_SOURCE -D_XOPEN_SOURCE=600 -Wall -I.././ plinkman_end.c -o plinkman_end.o -c
gcc -g -O2 -fPIC -D_DEFAULT_SOURCE -D_XOPEN_SOURCE=600 -Wall -I.././ kickload-unix.c -o kickload.o -c
kickload-unix.c: In function ‘locate_ocp_ini’:
kickload-unix.c:152:2: warning: #warning need to search XDG_DATA_DIRS too ? [-Wcpp]
  152 | #warning need to search XDG_DATA_DIRS too ?
      |  ^~~~~~~
kickload-unix.c: In function ‘rename_exdev’:
kickload-unix.c:517:33: warning: ignoring return value of ‘symlink’ declared with attribute ‘warn_unused_result’ [-Wunused-result]
  517 |                                 symlink (newpath, linkdata);
      |                                 ^~~~~~~~~~~~~~~~~~~~~~~~~~~
make[1]: Leaving directory '/home/bkw/src/opencubicplayer/boot'
make -C cpiface TOPDIR=.././

...

g++ -std=c++14 -I.././ -g -O2 -fPIC -Wall -Ilibbinio-git/src -Iadplug-git/src-DVERSION=\"2.3.4-beta\" -Dstricmp=strcasecmp -Ilibbinio-git/src  adplug-git/src/msc.cpp -o adplug_msc.o -c
g++ -std=c++14 -I.././ -g -O2 -fPIC -Wall -Ilibbinio-git/src -Iadplug-git/src-DVERSION=\"2.3.4-beta\" -Dstricmp=strcasecmp -Ilibbinio-git/src  adplug-git/src/mtk.cpp -o adplug_mtk.o -c
make[1]: *** No rule to make target 'adplug-git/src/mtr.cpp', needed by 'adplug_mtr.o'.  Stop.
make[1]: Leaving directory '/home/bkw/src/opencubicplayer/playopl'
make: *** [Makefile:133: playopl] Error 2
bkw@fw:~/src/opencubicplayer$ 
mywave82 commented 1 year ago

The git submodule stored in playopl/adplug-git is not at the expected commit. Doing a 'git pull' does not update the submodules. This will likely be visible if you issue a git status.

What makes it even more difficult is that the code in playopl/adplug-git, is rebased as the original project updates, so the commit history is not linear. I am evaluating for the next releases to make new branch names to avoid that part of the problem.

If you are not a git super-guru or do not want to learn about submodules yes, you can do a fresh git clone, and pull in the submodules with git submodule update --init --recursive.

bkw777 commented 1 year ago

Ah ok, no prob. I never even though of the possibility of submodules. You're right, I already had the repo cloned since years ago and only did a pull not a fresh clone.

Would you mind if I edited the readme to include something to guard against that? I guess since a fresh clone would not have the problem that does really already document the base case, so maybe adding more clutter for special cases is just clutter, but I at least would have only needed a word or two to remind that it's a possible thing. I wouldn't mind maybe writing a seperate small doc and just link to it, if it turns out to need much explaining. Or maybe I can figure out a git hook or something to add to makefile to make it automatic.

bkw777 commented 1 year ago

Anyway just to be clear, these two issues I submitted are not complaints, more like, rough edges that there is probably an easy way to file off so I'd like to do that because why not? Even though they are not actual capital P problems.

mywave82 commented 1 year ago

No worries, I try to read all issues etc with an open mind.

README could for sure include some hints about submodule usage. Also need to add download links for the reason addition of windows binaries as well.

Time is a bit limited at the moment. Process of moving house etc.

bkw777 commented 1 year ago

I have nothing to offer to here. There turned out to be several minor issues stemming from what looks like leftover artifacts from earlier builds with different directory structures like timidity moving from playgmi, where somehow git didn't handle everything that happened along the way and leave me with the correct current state, maybe because there were .so files leftover from an earlier build, so if I didn't happen to do a make clean before git pull, and maybe the current makefile make clean no longer knows that dir, and so it becomes something that looks like untracked files to git,

and something wierd with the submodules within libsidplayer and the fact that one is pinned at a particular hash in a detached head state

In the end I gave up, did a fresh clone, and ./configure spat out the right command to get all the submodules pulled in, which worked verbatim just copy & paste from the error message and rerun, and then it all built and installed fine.

Sorry for the noise.

Currently enjoying my 1993.MOD fix. Thank you.