[Xlibs] build failure on NetBSD, wrong use of install(1)? and DISTCLEANFILES removes needed files

Jeremy C. Reed reed@reedmedia.net
Fri, 30 Jan 2004 18:47:25 -0800 (PST)


xlibs/Xt/util/Makefile.am has:

DISTCLEANFILES=Shell.ht StrDefs.ct StrDefs.ht

Why?

Also, this is under NetBSD:

rainier:~/src/xlibs/Xt$ gmake
cd util; gmake
gmake[1]: Entering directory `/usr/local/src/src/xlibs/Xt/util'
source='makestrs.c' object='makestrs-makestrs.o' libtool=no \
depfile='.deps/makestrs-makestrs.Po'
tmpdepfile='.deps/makestrs-makestrs.TPo' \
depmode=gcc /usr/pkg/bin/bash ../depcomp \
gcc -DHAVE_CONFIG_H -I. -I. -I..    -DXTHREADS -DXUSE_MTSAFE_API
-I/usr/pkg/include   -g -O2 -c -o makestrs-makestrs.o `test -f
'makestrs.c' || echo './'`makestrs.c
gcc   -o makestrs  makestrs-makestrs.o
gmake[1]: Leaving directory `/usr/local/src/src/xlibs/Xt/util'
install ./util/*.ht ./util/*.ct ./util/
install: ./util/*.ht: stat: No such file or directory
gmake: [StringDefs.c] Error 1 (ignored)
./util/makestrs  < ./util/string.list > StringDefs.c
Expected template #htmpl, not found
gmake: *** [StringDefs.c] Error 1


Also received similar under Linux:

gmake[1]: Leaving directory `/home/reed/src/xlibs/Xt/util'
install ./util/*.ht ./util/*.ct ./util/
install: cannot stat `./util/*.ht': No such file or directory
install: cannot stat `./util/*.ct': No such file or directory
gmake: [StringDefs.c] Error 1 (ignored)
./util/makestrs  < ./util/string.list > StringDefs.c
Expected template #htmpl, not found
gmake: *** [StringDefs.c] Error 1


(This is strange. I had no idea how this happened under the Linux system
too. This is right after I successfully built xlibs about three times.
Now I see this is from DISTCLEANFILES.)

I noticed those files were missing.

reed@puget:~/src/xlibs/Xt$ cvs up -dP util
Enter passphrase for key '/home/reed/.ssh/freedesktop.org-id_dsa':
cvs update: Updating util
cvs update: warning: `util/Shell.ht' was lost
U util/Shell.ht
cvs update: warning: `util/StrDefs.ct' was lost
U util/StrDefs.ct
cvs update: warning: `util/StrDefs.ht' was lost
U util/StrDefs.ht

The Makefile.am uses install without -c switch. On NetBSD, that may mean
move (not copy).

But also, it copies to maybe same directory.

install -c ./util/*.ht ./util/*.ct ./util/
install: ./util//Shell.ht: write: Invalid argument
gmake: [StringDefs.h] Error 1 (ignored)

It maybe a bug in NetBSD, but when copying to same directory, the files
are removed. (Unless I see this wrong.)

Maybe cp should be used instead. (Maybe set umask as needed.)

   Jeremy C. Reed
   http://www.reedmedia.net/