Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

make install DESTDIR=... fails outside source directory #2

Open
mikrosk opened this issue May 14, 2019 · 3 comments · May be fixed by #5
Open

make install DESTDIR=... fails outside source directory #2

mikrosk opened this issue May 14, 2019 · 3 comments · May be fixed by #5

Comments

@mikrosk
Copy link
Member

mikrosk commented May 14, 2019

If I do something like:

 ../mintbin/configure --prefix=/usr --host=m68k-atari-mint
make
make install DESTDIR=$PWD/binary-package

the last step fails. It doesn't happen when launching ./configure from source directory.

@mikrosk
Copy link
Member Author

mikrosk commented Jun 8, 2024

This seems to be fixed but only for cross compilation. So

../mintbin-master/configure --target=m68k-atari-mint --disable-nls --prefix=/usr && make && make install-strip DESTDIR=${PWD}/binary-package/${CPU}/mintbin`

works but

../mintbin-master/configure --target=m68k-atari-mint --host=m68k-atari-mint --disable-nls --prefix=/usr && make && make install-strip DESTDIR=${PWD}/binary-package/${CPU}/mintbin

doesn't. It fails with

/bin/sh ../../../mintbin-master/mkinstalldirs /home/mikro/build/binary-package//mintbin/usr/m68k-atari-mint/include/mint
mkdir -p -- /home/mikro/build/binary-package//mintbin/usr/m68k-atari-mint/include/mint
 /usr/bin/install -c -m 644 ../../../mintbin-master/include/mint/a.out.h /home/mikro/build/binary-package//mintbin/usr/m68k-atari-mint/include/mint/a.out.h
 /usr/bin/install -c -m 644 ../../../mintbin-master/include/mint/prg-out.h /home/mikro/build/binary-package//mintbin/usr/m68k-atari-mint/include/mint/prg-out.h
if test x/home/mikro/build/binary-package//mintbin/usr/include != x/home/mikro/build/binary-package//mintbin; then \
          /bin/sh ../../../mintbin-master/mkinstalldirs /home/mikro/build/binary-package//mintbin/usr/include/mint || exit 1; \
          list='a.out.h prg-out.h'; for header in $list; do \
            ln /home/mikro/build/binary-package//mintbin/usr/m68k-atari-mint/include/mint/$header /home/mikro/build/binary-package//mintbin/usr/include/mint/$header >/dev/null 2>/dev/null \
    || /usr/bin/install -c -m 644 $header /home/mikro/build/binary-package//mintbin/usr/include/mint ;\
          done; \
fi
mkdir -p -- /home/mikro/build/binary-package//mintbin/usr/include/mint
make[4]: Leaving directory '/home/mikro/build/include/mint'
make[3]: Leaving directory '/home/mikro/build/include/mint'
make[3]: Entering directory '/home/mikro/build/include'
make[4]: Entering directory '/home/mikro/build/include'
make[4]: Nothing to be done for 'install-exec-am'.
if test x/home/mikro/build/binary-package//mintbin/usr/include != x/home/mikro/build/binary-package//mintbin; then \
  /bin/sh ../../mintbin-master/mkinstalldirs /home/mikro/build/binary-package//mintbin/usr/include || exit 1; \
  for header in a.out.h stab.h stab.def; do \
            ln /home/mikro/build/binary-package//mintbin/usr/m68k-atari-mint/include/$header /home/mikro/build/binary-package//mintbin/usr/include/$header >/dev/null 2>/dev/null \
      || /usr/bin/install -c -m 644 $header /home/mikro/build/binary-package//mintbin/usr/include; \
  done; \
        fi
/usr/bin/install: cannot stat 'a.out.h': No such file or directory
/usr/bin/install: cannot stat 'stab.h': No such file or directory
/usr/bin/install: cannot stat 'stab.def': No such file or directory
make[4]: *** [Makefile:678: install-data-local] Error 1
make[4]: Leaving directory '/home/mikro/build/include'
make[3]: *** [Makefile:567: install-am] Error 2
make[3]: Leaving directory '/home/mikro/build/include'
make[2]: *** [Makefile:404: install-recursive] Error 1
make[2]: Leaving directory '/home/mikro/build/include'
make[1]: *** [Makefile:406: install-recursive] Error 1
make[1]: Leaving directory '/home/mikro/build'
make: *** [Makefile:722: install-strip] Error 2

What is odd is that this fails for mint only. mintelf works totally fine. When checking the difference, I see that in mint we do:

if test x/home/mikro/atari/compilers/m68k-atari-mint-build.git/binary-package/m68000/mintbin/usr/include != x/home/mikro/atari/compilers/m68k-atari-mint-build.git/binary-package/m68000/mintbin; then \
          /bin/sh ../../../downloads/mintbin-master/mkinstalldirs /home/mikro/atari/compilers/m68k-atari-mint-build.git/binary-package/m68000/mintbin/usr/include/mint || exit 1; \
          list='a.out.h prg-out.h'; for header in $list; do \
            ln /home/mikro/atari/compilers/m68k-atari-mint-build.git/binary-package/m68000/mintbin/usr/m68k-atari-mint/include/mint/$header /home/mikro/atari/compilers/m68k-atari-mint-build.git/binary-package/m68000/mintbin/usr/include/mint/$header >/dev/null 2>/dev/null \
    || /usr/bin/install -c -m 644 $header /home/mikro/atari/compilers/m68k-atari-mint-build.git/binary-package/m68000/mintbin/usr/include/mint ;\
          done; \
fi

while in mintelf:

if test x/home/mikro/atari/compilers/m68k-atari-mint-build.git/binary-package/m68000/mintbin != x/home/mikro/atari/compilers/m68k-atari-mint-build.git/binary-package/m68000/mintbin; then \
          /bin/sh ../../../downloads/mintbin-master/mkinstalldirs /home/mikro/atari/compilers/m68k-atari-mint-build.git/binary-package/m68000/mintbin/mint || exit 1; \
          list='a.out.h prg-out.h'; for header in $list; do \
            ln /home/mikro/atari/compilers/m68k-atari-mint-build.git/binary-package/m68000/mintbin/usr/m68k-atari-mintelf/include/mint/$header /home/mikro/atari/compilers/m68k-atari-mint-build.git/binary-package/m68000/mintbin/mint/$header >/dev/null 2>/dev/null \
    || /usr/bin/install -c -m 644 $header /home/mikro/atari/compilers/m68k-atari-mint-build.git/binary-package/m68000/mintbin/mint ;\
          done; \
fi

Note the additional /usr/include suffix behind mintbin in the mint case. (the bug?)

@th-otto I see you use ${MAKE} DESTDIR="${THISPKG_DIR}${sysroot}" target_alias=$TARGET install in your scripts but for me it doesn't work at all. :-/ And you use the same repo/branch, odd.

@th-otto
Copy link
Contributor

th-otto commented Jun 8, 2024

if test x/home/mikro/build/binary-package//mintbin/usr/include != x/home/mikro/build/binary-package//mintbin; then

That looks like the DESTDIR that you have used, but it is missing the ${CPU} part. I think that variable is not exported in this repo, because it is current mainly used for the cross-compiler, and that don't build native per-cpu target.

I think if you need also the native binaries, we'll have to add entries to the matrix.

@mikrosk
Copy link
Member Author

mikrosk commented Jun 8, 2024

That looks like the DESTDIR that you have used, but it is missing the ${CPU} part

Ah, right, I copy&pasted it from my scripts to test the command line separately. So this is done correctly in my scripts, i.e. it's not the issue here.

I just wonder why --host=m68k-atari-mint is treated differently than --host=m68k-atari-mintelf, i.e. the former is failing why the latter isn't.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants