Paul_GreenVOS@vos.stratus.com
2003-Jan-16 21:31 UTC
Possible patch for Irix Makefile problem
I am guessing that since the error is on the first instance of
the use of
foo$(VAR): foo.o
construct, that the Irix makefile parser doesn't know how to
deal with this line. Obviously they don't use GNU make....
So here is a patch to Makefile.in that simplifies the use of
variables. This only uses constructs that should work in all
makes. It should not break anything, and it might fix Irix.
But I don't have an Irix machine to test it on...in fact, I
haven't tested it at all. (But I did stay in a Holiday Inn
once, and I carefully desk-checked it).
HTH. Patch below sig. Against current CVS version.
Thanks
PG
--
Paul Green | Mail: Paul.Green@stratus.com
Senior Technical Consultant | Voice: +1 978-461-7557 FAX: +1 978-461-3610
Stratus Technologies | Video: PictureTel/AT&T by request.
Maynard, MA 01754 | Disclaimer: I speak for myself, not Stratus.
### START OF PATCH ###
diff -urp old/rsync/Makefile.in new/rsync/Makefile.in
--- old/rsync/Makefile.in Thu Jan 16 16:06:00 2003
+++ new/rsync/Makefile.in Thu Jan 16 16:14:29 2003
@@ -43,8 +43,13 @@ OBJS=$(OBJS1) $(OBJS2) $(OBJS3) $(DAEMON
TLS_OBJ = tls.o syscall.o lib/permstring.o
# Programs we must have to run the test cases
-CHECK_PROGS = rsync$(EXEEXT) tls$(EXEEXT) getgroups$(EXEEXT) \
- trimslash$(EXEEXT) t_unsafe$(EXEEXT)
+RSYNC_EXE=rsync$(EXEEXT)
+TLS_EXE=tls$(EXEEXT)
+GETGROUPS_EXE=getgroups$(EXEEXT)
+TRIMSLASH_EXE=trimslash$(EXEEXT)
+T_UNSAFE_EXE=t_unsafe$(EXEEXT)
+CHECK_PROGS=$(RSYNC_EXE) $(TLS_EXE) $(GETGROUPS_EXE) \
+ $(TRIMSLASH_EXE) $(T_UNSAFE_EXE)
# Objects for CHECK_PROGS to clean
CHECK_OBJS=getgroups.o t_stub.o t_unsafe.o trimslash.o
@@ -55,13 +60,13 @@ CHECK_OBJS=getgroups.o t_stub.o t_unsafe
$(CC) -I. -I$(srcdir) $(CFLAGS) $(CPPFLAGS) -c $< @CC_SHOBJ_FLAG@
@OBJ_RESTORE@
-all: rsync$(EXEEXT)
+all: $(RSYNC_EXE)
man: rsync.1 rsyncd.conf.5
install: all
-mkdir -p ${DESTDIR}${bindir}
- ${INSTALLCMD} ${STRIP} -m 755 rsync$(EXEEXT) ${DESTDIR}${bindir}
+ ${INSTALLCMD} ${STRIP} -m 755 $(RSYNC_EXE) ${DESTDIR}${bindir}
-mkdir -p ${DESTDIR}${mandir}/man1
-mkdir -p ${DESTDIR}${mandir}/man5
${INSTALLMAN} -m 644 $(srcdir)/rsync.1 ${DESTDIR}${mandir}/man1
@@ -70,24 +75,24 @@ install: all
install-strip:
$(MAKE) STRIP='-s' install
-rsync$(EXEEXT): $(OBJS)
+$(RSYNC_EXE): $(OBJS)
@echo "Please ignore warnings below about mktemp -- it is used in a safe
way"
$(CC) $(CFLAGS) $(LDFLAGS) -o $@ $(OBJS) $(LIBS)
$(OBJS): config.h
-tls$(EXEEXT): $(TLS_OBJ)
+$(TLS_EXE): $(TLS_OBJ)
$(CC) $(CFLAGS) $(LDFLAGS) -o $@ $(TLS_OBJ) $(LIBS)
-getgroups$(EXEEXT): getgroups.o
+$(GETGROUPS_EXE): getgroups.o
$(CC) $(CFLAGS) $(LDFLAGS) -o $@ getgroups.o $(LIBS)
TRIMSLASH_OBJ = trimslash.o syscall.o
-trimslash$(EXEEXT): $(TRIMSLASH_OBJ)
+$(TRIMSLASH_EXE): $(TRIMSLASH_OBJ)
$(CC) $(CFLAGS) $(LDFLAGS) -o $@ $(TRIMSLASH_OBJ) $(LIBS)
T_UNSAFE_OBJ = t_unsafe.o syscall.o util.o t_stub.o lib/compat.o lib/snprintf.o
-t_unsafe$(EXEEXT): $(T_UNSAFE_OBJ)
+$(T_UNSAFE_EXE): $(T_UNSAFE_OBJ)
$(CC) $(CFLAGS) $(LDFLAGS) -o $@ $(T_UNSAFE_OBJ) $(LIBS)
# I don't like these rules because CVS can skew the timestamps and
@@ -157,14 +162,14 @@ test: check
# might lose in the future where POSIX diverges from old sh.
check: all $(CHECK_PROGS)
- POSIXLY_CORRECT=1 TOOLDIR=`pwd` rsync_bin=`pwd`/rsync$(EXEEXT)
srcdir="$(srcdir)" $(srcdir)/runtests.sh
+ POSIXLY_CORRECT=1 TOOLDIR=`pwd` rsync_bin=`pwd`/$(RSYNC_EXE)
srcdir="$(srcdir)" $(srcdir)/runtests.sh
# This does *not* depend on building or installing: you can use it to
# check a version installed from a binary or some other source tree,
# if you want.
installcheck: $(CHECK_PROGS)
- POSIXLY_CORRECT=1 TOOLDIR=`pwd` rsync_bin="$(bindir)/rsync$(EXEEXT)"
srcdir="$(srcdir)" $(srcdir)/runtests.sh
+ POSIXLY_CORRECT=1 TOOLDIR=`pwd` rsync_bin="$(bindir)/$(RSYNC_EXE)"
srcdir="$(srcdir)" $(srcdir)/runtests.sh
# TODO: Add 'dist' target; need to know which files will be included
### END OF PATCH ###
I tested this patch locally on VOS and it works. Since it is not VOS-specific and has to work completely for rsync to build, I think it is now safe to apply to the cvs version. I'm still in the process of installing CVS on my workstation. I'll eventually install this patch if no one beats me to it. PG