$NetBSD: patch-Makefile,v 1.1 2019/06/15 08:41:30 adam Exp $ Do not overwrite compiler flags. Use proper installation tools and paths. --- Makefile.orig 2018-05-06 02:07:28.000000000 +0000 +++ Makefile @@ -43,7 +43,6 @@ WAV49 = -DWAV49 # CC = /usr/lang/acc # CCFLAGS = -c -O -CC = gcc -ansi -pedantic CCFLAGS = -c -O2 -DNeedFunctionPrototypes=1 -Wall -Wno-comment LD = $(CC) @@ -71,7 +70,6 @@ LD = $(CC) # Leave INSTALL_ROOT empty (or just don't execute "make install") to # not install gsm and toast outside of this directory. -INSTALL_ROOT = # Where do you want to install the gsm library, header file, and manpages? # @@ -80,8 +78,8 @@ INSTALL_ROOT = GSM_INSTALL_ROOT = $(INSTALL_ROOT) GSM_INSTALL_LIB = $(GSM_INSTALL_ROOT)/lib -GSM_INSTALL_INC = $(GSM_INSTALL_ROOT)/inc -GSM_INSTALL_MAN = $(GSM_INSTALL_ROOT)/man/man3 +GSM_INSTALL_INC = $(GSM_INSTALL_ROOT)/include +GSM_INSTALL_MAN = $(GSM_INSTALL_ROOT)/${PKGMANDIR}/man3 # Where do you want to install the toast binaries and their manpage? @@ -91,13 +89,14 @@ GSM_INSTALL_MAN = $(GSM_INSTALL_ROOT)/ma TOAST_INSTALL_ROOT = $(INSTALL_ROOT) TOAST_INSTALL_BIN = $(TOAST_INSTALL_ROOT)/bin -TOAST_INSTALL_MAN = $(TOAST_INSTALL_ROOT)/man/man1 +TOAST_INSTALL_MAN = $(TOAST_INSTALL_ROOT)/${PKGMANDIR}/man1 # Other tools SHELL = /bin/sh -LN = ln +LN = ln -s BASENAME = basename +DIRNAME = dirname AR = ar ARFLAGS = cr RMFLAGS = @@ -114,7 +113,6 @@ RANLIB = ranlib # Local Directories -ROOT = . ADDTST = $(ROOT)/add-test TST = $(ROOT)/tst MAN = $(ROOT)/man @@ -129,7 +127,7 @@ INC = $(ROOT)/inc # DEBUG = -DNDEBUG ######### Remove -DNDEBUG to enable assertions. -CFLAGS = $(CCFLAGS) $(SASR) $(DEBUG) $(MULHACK) $(FAST) $(LTP_CUT) \ +CFLAGS += $(CCFLAGS) $(SASR) $(DEBUG) $(MULHACK) $(FAST) $(LTP_CUT) \ $(WAV49) $(CCINC) -I$(INC) ######### It's $(CC) $(CFLAGS) @@ -139,7 +137,7 @@ LFLAGS = $(LDFLAGS) $(LDINC) # Targets -LIBGSM = $(LIB)/libgsm.a +LIBGSM = $(LIB)/libgsm.la TOAST = $(BIN)/toast UNTOAST = $(BIN)/untoast @@ -257,7 +255,7 @@ STUFF = ChangeLog \ # Install targets GSM_INSTALL_TARGETS = \ - $(GSM_INSTALL_LIB)/libgsm.a \ + $(GSM_INSTALL_LIB)/libgsm.la \ $(GSM_INSTALL_INC)/gsm.h \ $(GSM_INSTALL_MAN)/gsm.3 \ $(GSM_INSTALL_MAN)/gsm_explode.3 \ @@ -273,10 +271,15 @@ TOAST_INSTALL_TARGETS = \ # Default rules +.SUFFIXES: .o .lo + .c.o: $(CC) $(CFLAGS) $? @-mv `$(BASENAME) $@` $@ > /dev/null 2>&1 +.c.lo: + cd `${DIRNAME} $@` && ${LIBTOOL} --mode=compile ${CC} ${CFLAGS} $? + # Target rules all: $(LIBGSM) $(TOAST) $(TCAT) $(UNTOAST) @@ -299,16 +302,20 @@ install: toastinstall gsminstall # The basic API: libgsm -$(LIBGSM): $(LIB) $(GSM_OBJECTS) +$(LIBGSM): $(LIB) $(GSM_OBJECTS:.o=.lo) -rm $(RMFLAGS) $(LIBGSM) - $(AR) $(ARFLAGS) $(LIBGSM) $(GSM_OBJECTS) - $(RANLIB) $(LIBGSM) + cd $(LIB) && \ + $(LIBTOOL) --mode=link $(CC) $(LDFLAGS) -o `$(BASENAME) $@` \ + $(GSM_OBJECTS:.o=.lo) \ + -rpath $(PREFIX)/lib -version-info 1:12 # Toast, Untoast and Tcat -- the compress-like frontends to gsm. $(TOAST): $(BIN) $(TOAST_OBJECTS) $(LIBGSM) - $(LD) $(LFLAGS) -o $(TOAST) $(TOAST_OBJECTS) $(LIBGSM) $(LDLIB) + cd $(BIN) && \ + $(LIBTOOL) --mode=link $(LD) $(LFLAGS) -o `$(BASENAME) $@` \ + $(TOAST_OBJECTS) $(LIBGSM) $(LDLIB) $(UNTOAST): $(BIN) $(TOAST) -rm $(RMFLAGS) $(UNTOAST) @@ -332,12 +339,12 @@ $(LIB): gsminstall: -if [ x"$(GSM_INSTALL_ROOT)" != x ] ; then \ - make $(GSM_INSTALL_TARGETS) ; \ + $(MAKE) $(GSM_INSTALL_TARGETS) ; \ fi toastinstall: -if [ x"$(TOAST_INSTALL_ROOT)" != x ]; then \ - make $(TOAST_INSTALL_TARGETS); \ + $(MAKE) $(TOAST_INSTALL_TARGETS); \ fi gsmuninstall: @@ -351,52 +358,34 @@ toastuninstall: fi $(TOAST_INSTALL_BIN)/toast: $(TOAST) - -rm $@ - cp $(TOAST) $@ - chmod 755 $@ + ${LIBTOOL} --mode=install ${BSD_INSTALL_PROGRAM} $? $(TOAST_INSTALL_BIN) $(TOAST_INSTALL_BIN)/untoast: $(TOAST_INSTALL_BIN)/toast - -rm $@ - ln $? $@ + ${LN} -f toast $@ $(TOAST_INSTALL_BIN)/tcat: $(TOAST_INSTALL_BIN)/toast - -rm $@ - ln $? $@ + ${LN} -f toast $@ $(TOAST_INSTALL_MAN)/toast.1: $(MAN)/toast.1 - -rm $@ - cp $? $@ - chmod 444 $@ + ${BSD_INSTALL_MAN} $? $(TOAST_INSTALL_MAN) $(GSM_INSTALL_MAN)/gsm.3: $(MAN)/gsm.3 - -rm $@ - cp $? $@ - chmod 444 $@ + ${BSD_INSTALL_MAN} $? $(GSM_INSTALL_MAN) $(GSM_INSTALL_MAN)/gsm_option.3: $(MAN)/gsm_option.3 - -rm $@ - cp $? $@ - chmod 444 $@ + ${BSD_INSTALL_MAN} $? $(GSM_INSTALL_MAN) $(GSM_INSTALL_MAN)/gsm_explode.3: $(MAN)/gsm_explode.3 - -rm $@ - cp $? $@ - chmod 444 $@ + ${BSD_INSTALL_MAN} $? $(GSM_INSTALL_MAN) $(GSM_INSTALL_MAN)/gsm_print.3: $(MAN)/gsm_print.3 - -rm $@ - cp $? $@ - chmod 444 $@ + ${BSD_INSTALL_MAN} $? $(GSM_INSTALL_MAN) $(GSM_INSTALL_INC)/gsm.h: $(INC)/gsm.h - -rm $@ - cp $? $@ - chmod 444 $@ - -$(GSM_INSTALL_LIB)/libgsm.a: $(LIBGSM) - -rm $@ - cp $? $@ - chmod 444 $@ + ${BSD_INSTALL_DATA} $? $(GSM_INSTALL_INC) + +$(GSM_INSTALL_LIB)/libgsm.la: $(LIBGSM) + ${LIBTOOL} --mode=install ${BSD_INSTALL_LIB} $? $(GSM_INSTALL_LIB) # Distribution