buserror / mii_emu

MII Apple //e Emulator for Linux
MIT License
143 stars 7 forks source link

Request that the makefile support paths with spaces #4

Closed xandark closed 1 year ago

xandark commented 1 year ago

Could the makefile be modified to support pathnames that have spaces in them? I have to do a hack to get this to build and even then it will only build just the main executable, not the mish_test file.

buserror commented 1 year ago

Ok I forget I used to use OSX as my main OS sometimes :-)

buserror commented 1 year ago

Hmm do you have a 'make' output? I had a look at the Makefile, and the only absolute path I find is for making libmish (which I now fixed) -- everything else SEEMS to be using all relative path to $PWD...? I must be missing something?

xandark commented 1 year ago

Thank you for looking at this!

Okay, I did a pull and another make, and it gets further in the process but still fails, along with some messages I didn't see before about circular dependencies.

Below is just the end part of the compilation output, and note that my path to the directory is:

"/home/xandark/Retro/Apple/Apple II/Emulators/MII"

but that gets split and either becomes:

/home/xandark/Retro/Apple/Apple

or

II/Emulators/MII

...in the make process.

  CC      nuklear/mii_emu.c
  CC      nuklear/mii_fonts.c
  CC      nuklear/mii_mish.c
  CC      nuklear/mii_mish_dd.c
  CC      nuklear/mii_nuklear.c
  CC      nuklear/mii_stb_implement.c
  CC      nuklear/mii_thread.c
make -j -C libmish O="/home/xandark/Retro/Apple/Apple II/Emulators/MII" CC="gcc" V=""
make[1]: Entering directory '/home/xandark/Retro/Apple/Apple II/Emulators/MII/libmish'
Makefile.common:48: target '/home/xandark/Retro/Apple/Apple' given more than once in the same rule
Makefile.common:48: target '/home/xandark/Retro/Apple/Apple' given more than once in the same rule
Makefile.common:52: warning: overriding recipe for target '/home/xandark/Retro/Apple/Apple'
Makefile.common:49: warning: ignoring old recipe for target '/home/xandark/Retro/Apple/Apple'
Makefile.common:51: *** mixed implicit and normal rules: deprecated syntax
Makefile.common:59: warning: overriding recipe for target '/home/xandark/Retro/Apple/Apple'
Makefile.common:52: warning: ignoring old recipe for target '/home/xandark/Retro/Apple/Apple'
Makefile.common:58: *** mixed implicit and normal rules: deprecated syntax
Makefile.common:64: warning: overriding recipe for target '/home/xandark/Retro/Apple/Apple'
Makefile.common:59: warning: ignoring old recipe for target '/home/xandark/Retro/Apple/Apple'
Makefile.common:63: *** mixed implicit and normal rules: deprecated syntax
Makefile.common:80: warning: overriding recipe for target '/home/xandark/Retro/Apple/Apple'
Makefile.common:64: warning: ignoring old recipe for target '/home/xandark/Retro/Apple/Apple'
Makefile.common:79: *** mixed implicit and normal rules: deprecated syntax
Makefile.common:79: target '/home/xandark/Retro/Apple/Apple' given more than once in the same rule
Makefile.common:79: *** mixed implicit and normal rules: deprecated syntax
Makefile.common:79: target '/home/xandark/Retro/Apple/Apple' given more than once in the same rule
Makefile.common:79: *** mixed implicit and normal rules: deprecated syntax
make[1]: Circular /home/xandark/Retro/Apple/Apple <- /home/xandark/Retro/Apple/Apple dependency dropped.
make[1]: Circular /home/xandark/Retro/Apple/Apple <- /home/xandark/Retro/Apple/Apple dependency dropped.
make[1]: Circular /home/xandark/Retro/Apple/Apple <- /home/xandark/Retro/Apple/Apple dependency dropped.
make[1]: Circular /home/xandark/Retro/Apple/Apple <- /home/xandark/Retro/Apple/Apple dependency dropped.
make[1]: Circular II/Emulators/MII/build-x86_64-linux-gnu/obj/libmish/%.o <- /home/xandark/Retro/Apple/Apple dependency dropped.
make[1]: Circular /home/xandark/Retro/Apple/Apple <- /home/xandark/Retro/Apple/Apple dependency dropped.
make[1]: Circular /home/xandark/Retro/Apple/Apple <- /home/xandark/Retro/Apple/Apple dependency dropped.
make[1]: Circular /home/xandark/Retro/Apple/Apple <- /home/xandark/Retro/Apple/Apple dependency dropped.
make[1]: Circular /home/xandark/Retro/Apple/Apple <- /home/xandark/Retro/Apple/Apple dependency dropped.
make[1]: Circular /home/xandark/Retro/Apple/Apple <- /home/xandark/Retro/Apple/Apple dependency dropped.
make[1]: Circular /home/xandark/Retro/Apple/Apple <- /home/xandark/Retro/Apple/Apple dependency dropped.
make[1]: Circular /home/xandark/Retro/Apple/Apple <- /home/xandark/Retro/Apple/Apple dependency dropped.
make[1]: Circular /home/xandark/Retro/Apple/Apple <- /home/xandark/Retro/Apple/Apple dependency dropped.
make[1]: Circular /home/xandark/Retro/Apple/Apple <- /home/xandark/Retro/Apple/Apple dependency dropped.
make[1]: Circular /home/xandark/Retro/Apple/Apple <- /home/xandark/Retro/Apple/Apple dependency dropped.
make[1]: Circular /home/xandark/Retro/Apple/Apple <- /home/xandark/Retro/Apple/Apple dependency dropped.
make[1]: Circular /home/xandark/Retro/Apple/Apple <- /home/xandark/Retro/Apple/Apple dependency dropped.
make[1]: Circular /home/xandark/Retro/Apple/Apple <- /home/xandark/Retro/Apple/Apple dependency dropped.
make[1]: Circular /home/xandark/Retro/Apple/Apple <- /home/xandark/Retro/Apple/Apple dependency dropped.
make[1]: Circular /home/xandark/Retro/Apple/Apple <- /home/xandark/Retro/Apple/Apple dependency dropped.
make[1]: Circular /home/xandark/Retro/Apple/Apple <- /home/xandark/Retro/Apple/Apple dependency dropped.
make[1]: Circular /home/xandark/Retro/Apple/Apple <- /home/xandark/Retro/Apple/Apple dependency dropped.
make[1]: Circular /home/xandark/Retro/Apple/Apple <- /home/xandark/Retro/Apple/Apple dependency dropped.
make[1]: Circular /home/xandark/Retro/Apple/Apple <- /home/xandark/Retro/Apple/Apple dependency dropped.
make[1]: Circular /home/xandark/Retro/Apple/Apple <- /home/xandark/Retro/Apple/Apple dependency dropped.
make[1]: Circular /home/xandark/Retro/Apple/Apple <- /home/xandark/Retro/Apple/Apple dependency dropped.
make[1]: Circular /home/xandark/Retro/Apple/Apple <- /home/xandark/Retro/Apple/Apple dependency dropped.
make[1]: Circular /home/xandark/Retro/Apple/Apple <- /home/xandark/Retro/Apple/Apple dependency dropped.
make[1]: Circular /home/xandark/Retro/Apple/Apple <- /home/xandark/Retro/Apple/Apple dependency dropped.
make[1]: Circular /home/xandark/Retro/Apple/Apple <- /home/xandark/Retro/Apple/Apple dependency dropped.
make[1]: Circular /home/xandark/Retro/Apple/Apple <- /home/xandark/Retro/Apple/Apple dependency dropped.
make[1]: Circular /home/xandark/Retro/Apple/Apple <- /home/xandark/Retro/Apple/Apple dependency dropped.
make[1]: Circular II/Emulators/MII/build-x86_64-linux-gnu/lib/libmish.a <- /home/xandark/Retro/Apple/Apple dependency dropped.
make[1]: Circular II/Emulators/MII/build-x86_64-linux-gnu/lib/libmish.a <- /home/xandark/Retro/Apple/Apple dependency dropped.
make[1]: Circular II/Emulators/MII/build-x86_64-linux-gnu/lib/libmish.a <- /home/xandark/Retro/Apple/Apple dependency dropped.
make[1]: Circular II/Emulators/MII/build-x86_64-linux-gnu/lib/libmish.a <- /home/xandark/Retro/Apple/Apple dependency dropped.
make[1]: Circular II/Emulators/MII/build-x86_64-linux-gnu/lib/libmish.a <- /home/xandark/Retro/Apple/Apple dependency dropped.
make[1]: Circular II/Emulators/MII/build-x86_64-linux-gnu/lib/libmish.a <- /home/xandark/Retro/Apple/Apple dependency dropped.
make[1]: Circular II/Emulators/MII/build-x86_64-linux-gnu/lib/libmish.a <- /home/xandark/Retro/Apple/Apple dependency dropped.
make[1]: Circular II/Emulators/MII/build-x86_64-linux-gnu/lib/libmish.a <- /home/xandark/Retro/Apple/Apple dependency dropped.
make[1]: Circular II/Emulators/MII/build-x86_64-linux-gnu/lib/libmish.a <- /home/xandark/Retro/Apple/Apple dependency dropped.
make[1]: Circular II/Emulators/MII/build-x86_64-linux-gnu/lib/libmish.a <- /home/xandark/Retro/Apple/Apple dependency dropped.
make[1]: Circular II/Emulators/MII/build-x86_64-linux-gnu/lib/libmish.a <- /home/xandark/Retro/Apple/Apple dependency dropped.
make[1]: Circular II/Emulators/MII/build-x86_64-linux-gnu/lib/libmish.a <- /home/xandark/Retro/Apple/Apple dependency dropped.
make[1]: Circular shared <- /home/xandark/Retro/Apple/Apple dependency dropped.
make[1]: Circular II/Emulators/MII/build-x86_64-linux-gnu/lib/libmish.so.1 <- /home/xandark/Retro/Apple/Apple dependency dropped.
make[1]: Circular II/Emulators/MII/build-x86_64-linux-gnu/lib/libmish.so.1 <- /home/xandark/Retro/Apple/Apple dependency dropped.
make[1]: Circular II/Emulators/MII/build-x86_64-linux-gnu/lib/libmish.so.1 <- /home/xandark/Retro/Apple/Apple dependency dropped.
make[1]: Circular II/Emulators/MII/build-x86_64-linux-gnu/lib/libmish.so.1 <- /home/xandark/Retro/Apple/Apple dependency dropped.
make[1]: Circular II/Emulators/MII/build-x86_64-linux-gnu/lib/libmish.so.1 <- /home/xandark/Retro/Apple/Apple dependency dropped.
make[1]: Circular II/Emulators/MII/build-x86_64-linux-gnu/lib/libmish.so.1 <- /home/xandark/Retro/Apple/Apple dependency dropped.
make[1]: Circular II/Emulators/MII/build-x86_64-linux-gnu/lib/libmish.so.1 <- /home/xandark/Retro/Apple/Apple dependency dropped.
make[1]: Circular II/Emulators/MII/build-x86_64-linux-gnu/lib/libmish.so.1 <- /home/xandark/Retro/Apple/Apple dependency dropped.
make[1]: Circular II/Emulators/MII/build-x86_64-linux-gnu/lib/libmish.so.1 <- /home/xandark/Retro/Apple/Apple dependency dropped.
make[1]: Circular II/Emulators/MII/build-x86_64-linux-gnu/lib/libmish.so.1 <- /home/xandark/Retro/Apple/Apple dependency dropped.
make[1]: Circular II/Emulators/MII/build-x86_64-linux-gnu/lib/libmish.so.1 <- /home/xandark/Retro/Apple/Apple dependency dropped.
make[1]: Circular II/Emulators/MII/build-x86_64-linux-gnu/lib/libmish.so.1 <- /home/xandark/Retro/Apple/Apple dependency dropped.
make[1]: *** No rule to make target 'II/Emulators/MII/build-x86_64-linux-gnu/obj/libmish/mish_capture_select.o', needed by 'II/Emulators/MII/build-x86_64-linux-gnu/lib/libmish.so.1'.  Stop.
make[1]: Leaving directory '/home/xandark/Retro/Apple/Apple II/Emulators/MII/libmish'
make: *** [Makefile:43: build-x86_64-linux-gnu/lib/libmish.a] Error 2
xandark commented 1 year ago

BTW, I'm using Linux. If you want the full make output let me know. There's a bunch of compile warnings, which is noise to me.

buserror commented 1 year ago

Thanks, I had fixed it yesterday had forgotten to push :-)

xandark commented 1 year ago

Okay, I pulled and rebuilt, and it got further, but there's still a hiccup that I'd like to report:

make
  CC      src/mii_65c02_asm.c
  CC      src/mii_65c02.c
In file included from src/mii_65c02.c:6:
libmish/src/minipt.h: In function ‘_set_gcc_ptr_workaround’:
libmish/src/minipt.h:28:32: warning: unknown option after ‘#pragma GCC diagnostic’ kind [-Wpragmas]
   28 | #pragma GCC diagnostic ignored "-Wdangling-pointer"
      |                                ^~~~~~~~~~~~~~~~~~~~
libmish/src/minipt.h:28:32: note: did you mean ‘-Wdangling-else’?
  CC      src/mii_65c02_disasm.c
  CC      src/mii_analog.c
  CC      src/mii_argv.c
  CC      src/mii_bank.c
  CC      src/mii.c
In file included from src/mii.c:20:
libmish/src/minipt.h: In function ‘_set_gcc_ptr_workaround’:
libmish/src/minipt.h:28:32: warning: unknown option after ‘#pragma GCC diagnostic’ kind [-Wpragmas]
   28 | #pragma GCC diagnostic ignored "-Wdangling-pointer"
      |                                ^~~~~~~~~~~~~~~~~~~~
libmish/src/minipt.h:28:32: note: did you mean ‘-Wdangling-else’?
  CC      src/mii_slot.c
  CC      src/mii_speaker.c
src/mii_speaker.c: In function ‘mii_speaker_run’:
src/mii_speaker.c:199:33: warning: ignoring return value of ‘write’ declared with attribute ‘warn_unused_result’ [-Wunused-result]
  199 |                                 write(s->debug_fd, f->audio,
      |                                 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
  200 |                                                         f->fill * sizeof(s->frame[0].audio[0]));
      |                                                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  CC      src/mii_video.c
In file included from src/mii_video.c:18:
libmish/src/minipt.h: In function ‘_set_gcc_ptr_workaround’:
libmish/src/minipt.h:28:32: warning: unknown option after ‘#pragma GCC diagnostic’ kind [-Wpragmas]
   28 | #pragma GCC diagnostic ignored "-Wdangling-pointer"
      |                                ^~~~~~~~~~~~~~~~~~~~
libmish/src/minipt.h:28:32: note: did you mean ‘-Wdangling-else’?
  CC      src/format/dsk.c
src/format/dsk.c: In function ‘implodeDo’:
src/format/dsk.c:199:19: warning: unused variable ‘data_field_sz’ [-Wunused-variable]
  199 |         const int data_field_sz = 0x15A; //counts prologue, not epilogue
      |                   ^~~~~~~~~~~~~
  CC      src/format/empty.c
  CC      src/format/mii_dd.c
src/format/mii_dd.c: In function ‘mii_dd_overlay_load’:
src/format/mii_dd.c:215:17: warning: ignoring return value of ‘asprintf’ declared with attribute ‘warn_unused_result’ [-Wunused-result]
  215 |                 asprintf(&filename, "%.*s.miov", (int)(suffix - dd->file->pathname), dd->file->pathname);
      |                 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/format/mii_dd.c:217:17: warning: ignoring return value of ‘asprintf’ declared with attribute ‘warn_unused_result’ [-Wunused-result]
  217 |                 asprintf(&filename, "%s.miov", dd->file->pathname);
      |                 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/format/mii_dd.c: In function ‘mii_dd_overlay_prepare’:
src/format/mii_dd.c:286:17: warning: ignoring return value of ‘asprintf’ declared with attribute ‘warn_unused_result’ [-Wunused-result]
  286 |                 asprintf(&filename, "%.*s.miov", (int)(suffix - dd->file->pathname), dd->file->pathname);
      |                 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/format/mii_dd.c:288:17: warning: ignoring return value of ‘asprintf’ declared with attribute ‘warn_unused_result’ [-Wunused-result]
  288 |                 asprintf(&filename, "%s.miov", dd->file->pathname);
      |                 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/format/mii_dd.c:297:17: warning: ignoring return value of ‘ftruncate’ declared with attribute ‘warn_unused_result’ [-Wunused-result]
  297 |                 ftruncate(fd, size);
      |                 ^~~~~~~~~~~~~~~~~~~
  CC      src/format/mii_disk_format.c
  CC      src/format/nib.c
  CC      src/drivers/mii_disk2.c
  CC      src/drivers/mii_epromcard.c
  CC      src/drivers/mii_mouse.c
  CC      src/drivers/mii_noslotclock.c
In file included from src/drivers/mii_noslotclock.c:23:
libmish/src/minipt.h: In function ‘_set_gcc_ptr_workaround’:
libmish/src/minipt.h:28:32: warning: unknown option after ‘#pragma GCC diagnostic’ kind [-Wpragmas]
   28 | #pragma GCC diagnostic ignored "-Wdangling-pointer"
      |                                ^~~~~~~~~~~~~~~~~~~~
libmish/src/minipt.h:28:32: note: did you mean ‘-Wdangling-else’?
  CC      src/drivers/mii_smartport.c
src/drivers/mii_smartport.c: In function ‘_mii_sm_init’:
src/drivers/mii_smartport.c:268:17: warning: ignoring return value of ‘asprintf’ declared with attribute ‘warn_unused_result’ [-Wunused-result]
  268 |                 asprintf((char **)&dd->name, "SmartPort S:%d D:%d",
      |                 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  269 |                                 dd->slot_id, dd->drive);
      |                                 ~~~~~~~~~~~~~~~~~~~~~~~
  CC      src/drivers/mii_titan_iie.c
  CC      contrib/libsofd.c
  CC      contrib/md5.c
  CC      nuklear/mii_emu.c
  CC      nuklear/mii_fonts.c
  CC      nuklear/mii_mish.c
  CC      nuklear/mii_mish_dd.c
  CC      nuklear/mii_nuklear.c
  CC      nuklear/mii_stb_implement.c
  CC      nuklear/mii_thread.c
make -j -C libmish O="../" CC="gcc" V=""
make[1]: Entering directory '/home/xandark/Retro/Apple/Apple II/Emulators/MII/libmish'
  MKDIR ..//build-x86_64-linux-gnu/obj/libmish
  CC -O2 src/mish_capture_select.c
  CC -O2 src/mish_client.c
  CC -O2 src/mish_client_input.c
  CC -O2 src/mish_input.c
  CC -O2 src/mish_cmd.c
  CC -O2 src/mish_cmd_env.c
  CC -O2 src/mish_line.c
  CC -O2 src/mish_send.c
  CC -O2 src/mish_session.c
  CC -O2 src/mish_telnet.c
  CC -O2 src/mish_vt.c
  CC -O2 tests/mish_vt_test.c
  CC -O2 tests/mish_test.c
  CC -O2 tests/mish_cmd_test.c
  CC -O2 tests/mish_input_test.c
  CC -O2 tests/mish_argv_make_test.c
In file included from src/mish_client.c:16:
src/minipt.h: In function ‘_set_gcc_ptr_workaround’:
src/minipt.h:28:32: warning: unknown option after ‘#pragma GCC diagnostic’ kind [-Wpragmas]
   28 | #pragma GCC diagnostic ignored "-Wdangling-pointer"
      |                                ^~~~~~~~~~~~~~~~~~~~
src/minipt.h:28:32: note: did you mean ‘-Wdangling-else’?
  LIB   ..//build-x86_64-linux-gnu/lib/libmish.a
  LDSO ..//build-x86_64-linux-gnu/lib/libmish.so.1
/usr/bin/ld: cannot find II/Emulators/MII/build-x86_64-linux-gnu/lib: No such file or directory
collect2: error: ld returned 1 exit status
ERROR: ..//build-x86_64-linux-gnu/lib/libmish.so.1 -- relaunch with V=1
  LD    mish_test
  LD    mish_vt_test
/usr/bin/ld: cannot find II/Emulators/MII/build-x86_64-linux-gnu/lib: No such file or directory
collect2: error: ld returned 1 exit status
Error: gcc -o ..//build-x86_64-linux-gnu/obj/libmish/mish_test.o -lutil -lpthread -Wl,--relax,--gc-sections -L..//build-x86_64-linux-gnu/lib -Wl,-rpath,/home/xandark/Retro/Apple/Apple II/Emulators/MII/build-x86_64-linux-gnu/lib -lutil -lpthread -lmish -lrt
/usr/bin/ld: cannot find II/Emulators/MII/build-x86_64-linux-gnu/lib: No such file or directory
  LD    mish_cmd_test
collect2: error: ld returned 1 exit status
Error: gcc -o ..//build-x86_64-linux-gnu/obj/libmish/mish_vt_test.o -lutil -lpthread -Wl,--relax,--gc-sections -L..//build-x86_64-linux-gnu/lib -Wl,-rpath,/home/xandark/Retro/Apple/Apple II/Emulators/MII/build-x86_64-linux-gnu/lib -lutil -lpthread -lmish -lrt
  LD    mish_input_test
/usr/bin/ld: cannot find II/Emulators/MII/build-x86_64-linux-gnu/lib: No such file or directory
collect2: error: ld returned 1 exit status
Error: gcc -o ..//build-x86_64-linux-gnu/obj/libmish/mish_cmd_test.o -lutil -lpthread -Wl,--relax,--gc-sections -L..//build-x86_64-linux-gnu/lib -Wl,-rpath,/home/xandark/Retro/Apple/Apple II/Emulators/MII/build-x86_64-linux-gnu/lib -lutil -lpthread -lmish -lrt
  LD    mish_argv_make_test
/usr/bin/ld: cannot find II/Emulators/MII/build-x86_64-linux-gnu/lib: No such file or directory
collect2: error: ld returned 1 exit status
Error: gcc -o ..//build-x86_64-linux-gnu/obj/libmish/mish_input_test.o -lutil -lpthread -Wl,--relax,--gc-sections -L..//build-x86_64-linux-gnu/lib -Wl,-rpath,/home/xandark/Retro/Apple/Apple II/Emulators/MII/build-x86_64-linux-gnu/lib -lutil -lpthread
/usr/bin/ld: cannot find II/Emulators/MII/build-x86_64-linux-gnu/lib: No such file or directory
collect2: error: ld returned 1 exit status
Error: gcc -o ..//build-x86_64-linux-gnu/obj/libmish/mish_argv_make_test.o -lutil -lpthread -Wl,--relax,--gc-sections -L..//build-x86_64-linux-gnu/lib -Wl,-rpath,/home/xandark/Retro/Apple/Apple II/Emulators/MII/build-x86_64-linux-gnu/lib -lutil -lpthread -lmish -lrt
make[1]: Leaving directory '/home/xandark/Retro/Apple/Apple II/Emulators/MII/libmish'
  LD      build-x86_64-linux-gnu/bin/mii_emu