# [PATCH] Building git on NetBSD

5 messages from 2005-11-12 to 2005-11-13. Participants: walt, Andreas Ericsson, Junio C Hamano, wa1ter@myrealbox.com.
Thread: https://gitlist.dev/t/2473

## walt, 2005-11-12 15:12

Subject: [PATCH] Building git on NetBSD
Message-ID: <Pine.LNX.4.64.0511120649430.2695@x2.ybpnyarg>
URL: https://gitlist.dev/e/Pine.LNX.4.64.0511120649430.2695%40x2.ybpnyarg

```
This gets git going on NetBSD:

--- Makefile.orig	2005-11-12 05:06:55.000000000 -0800
+++ Makefile
@@ -212,6 +212,10 @@ ifeq ($(uname_S),OpenBSD)
 	NEEDS_LIBICONV = YesPlease
 	ALL_CFLAGS += -I/usr/local/include -L/usr/local/lib
 endif
+ifeq ($(uname_S),NetBSD)
+	NEEDS_LIBICONV = YesPlease
+	ALL_CFLAGS += -I/usr/pkg/include -L/usr/pkg/lib -Wl,-rpath,/usr/pkg/lib
+endif
 ifneq (,$(findstring arm,$(uname_M)))
 	ARM_SHA1 = YesPlease
 endif

I'm no software developer so I'm not sure about the syntax of the -rpath
flag.  It does what I wanted, but it results in lots of warnings about
not being used because no linking is taking place.  Should this maybe
go in LDFLAGS instead of CFLAGS?  Dunno.

Anyway, I actually used cg-clone on NetBSD to clone the git repository,
and I'll try to get the pkgsrc guys interested in creating packages for
cogito and git.

Oh, one person was concerned about the cogito scripts running on the
NetBSD version of sh, which isn't bash.  So far I've tried cg-clone,
cg-update, and gitk, and all worked just like on linux.  Any chance
that some of the other scripts may not work as well on a non-bash sh?

```

## Andreas Ericsson, 2005-11-12 15:32

Subject: Re: [PATCH] Building git on NetBSD
Message-ID: <43760AF5.1010704@op5.se>
URL: https://gitlist.dev/e/43760AF5.1010704%40op5.se
In-Reply-To: <Pine.LNX.4.64.0511120649430.2695@x2.ybpnyarg>

```
walt wrote:
> 
> I'm no software developer so I'm not sure about the syntax of the -rpath
> flag.  It does what I wanted, but it results in lots of warnings about
> not being used because no linking is taking place.  Should this maybe
> go in LDFLAGS instead of CFLAGS?  Dunno.
> 

Yes it should. Currently the git makefile doesn't distinguish between 
CFLAGS and LDFLAGS which results in a fair few warnings.

> Oh, one person was concerned about the cogito scripts running on the
> NetBSD version of sh, which isn't bash.  So far I've tried cg-clone,
> cg-update, and gitk, and all worked just like on linux.  Any chance
> that some of the other scripts may not work as well on a non-bash sh?
> 

gitk is in tcl so I'd be surprised if that didn't work.

I don't think there's been a whole lot of testing for other shells but 
the friendly folks on this list usually takes care of fixing such things 
fairly quickly so long as someone tells them where to look or, 
preferrably, sends a patch that does the trick.

-- 
Andreas Ericsson                   andreas.ericsson@op5.se
OP5 AB                             www.op5.se
Tel: +46 8-230225                  Fax: +46 8-230231

```

## Junio C Hamano, 2005-11-13 02:41

Subject: Re: [PATCH] Building git on NetBSD
Message-ID: <7vhdahclr5.fsf@assigned-by-dhcp.cox.net>
URL: https://gitlist.dev/e/7vhdahclr5.fsf%40assigned-by-dhcp.cox.net
In-Reply-To: <43760AF5.1010704@op5.se>

```
Andreas Ericsson <ae@op5.se> writes:

> Yes it should. Currently the git makefile doesn't distinguish between 
> CFLAGS and LDFLAGS which results in a fair few warnings.

Very well.  Maybe LDFLAGS and ALL_LDFLAGS pair to parallel
CFLAGS and ALL_CFLAGS (the former is for the end user to
override from make command line, the latter is for Makefile to
augment and use)?

```

## Junio C Hamano, 2005-11-13 09:44

Subject: Re: [PATCH] Building git on NetBSD
Message-ID: <7vlkzsc262.fsf@assigned-by-dhcp.cox.net>
URL: https://gitlist.dev/e/7vlkzsc262.fsf%40assigned-by-dhcp.cox.net
In-Reply-To: <7vhdahclr5.fsf@assigned-by-dhcp.cox.net>

```
Junio C Hamano <junkio@cox.net> writes:

> Andreas Ericsson <ae@op5.se> writes:
>
>> Yes it should. Currently the git makefile doesn't distinguish between 
>> CFLAGS and LDFLAGS which results in a fair few warnings.
>
> Very well.  Maybe LDFLAGS and ALL_LDFLAGS pair to parallel
> CFLAGS and ALL_CFLAGS (the former is for the end user to
> override from make command line, the latter is for Makefile to
> augment and use)?

Does this look OK?

-- >8 -- cut here -- >8 --
diff --git a/Makefile b/Makefile
index b75cb13..7713c05 100644
--- a/Makefile
+++ b/Makefile
@@ -52,10 +52,12 @@
 
 GIT_VERSION = 0.99.9.GIT
 
-# CFLAGS is for the users to override from the command line.
+# CFLAGS and LDFLAGS are for the users to override from the command line.
 
 CFLAGS = -g -O2 -Wall
+LDFLAGS =
 ALL_CFLAGS = $(CFLAGS)
+ALL_LDFLAGS = $(LDFLAGS)
 
 prefix = $(HOME)
 bindir = $(prefix)/bin
@@ -187,9 +189,11 @@ ifeq ($(uname_S),Darwin)
 	NEEDS_SSL_WITH_CRYPTO = YesPlease
 	NEEDS_LIBICONV = YesPlease
 	## fink
-	ALL_CFLAGS += -I/sw/include -L/sw/lib
+	ALL_CFLAGS += -I/sw/include
+	ALL_LDFLAGS += -L/sw/lib
 	## darwinports
-	ALL_CFLAGS += -I/opt/local/include -L/opt/local/lib
+	ALL_CFLAGS += -I/opt/local/include
+	ALL_LDFLAGS += -L/opt/local/lib
 endif
 ifeq ($(uname_S),SunOS)
 	NEEDS_SOCKET = YesPlease
@@ -211,7 +215,13 @@ endif
 ifeq ($(uname_S),OpenBSD)
 	NO_STRCASESTR = YesPlease
 	NEEDS_LIBICONV = YesPlease
-	ALL_CFLAGS += -I/usr/local/include -L/usr/local/lib
+	ALL_CFLAGS += -I/usr/local/include
+	ALL_LDFLAGS += -L/usr/local/lib
+endif
+ifeq ($(uname_S),NetBSD)
+	NEEDS_LIBICONV = YesPlease
+	ALL_CFLAGS += -I/usr/pkg/include
+	ALL_LDFLAGS += -L/usr/pkg/lib -Wl,-rpath,/usr/pkg/lib
 endif
 ifneq (,$(findstring arm,$(uname_M)))
 	ARM_SHA1 = YesPlease
@@ -221,7 +231,7 @@ endif
 
 ifndef NO_CURL
 	ifdef CURLDIR
-		# This is still problematic -- gcc does not want -R.
+		# This is still problematic -- gcc does not always want -R.
 		ALL_CFLAGS += -I$(CURLDIR)/include
 		CURL_LIBCURL = -L$(CURLDIR)/lib -R$(CURLDIR)/lib -lcurl
 	else
@@ -369,12 +379,13 @@ git-cherry-pick: git-revert
 	$(CC) -o $*.o -c $(ALL_CFLAGS) $<
 
 git-%$X: %.o $(LIB_FILE)
-	$(CC) $(ALL_CFLAGS) -o $@ $(filter %.o,$^) $(LIBS)
+	$(CC) $(ALL_CFLAGS) -o $@ $(ALL_LDFLAGS) $(filter %.o,$^) $(LIBS)
 
 git-mailinfo$X : SIMPLE_LIB += $(LIB_4_ICONV)
 $(SIMPLE_PROGRAMS) : $(LIB_FILE)
 $(SIMPLE_PROGRAMS) : git-%$X : %.o
-	$(CC) $(ALL_CFLAGS) -o $@ $(filter %.o,$^) $(LIB_FILE) $(SIMPLE_LIB)
+	$(CC) $(ALL_CFLAGS) -o $@ $(ALL_LDFLAGS) $(filter %.o,$^) \
+		$(LIB_FILE) $(SIMPLE_LIB)
 
 git-http-fetch$X: fetch.o
 git-local-fetch$X: fetch.o
@@ -408,10 +419,10 @@ test: all
 	$(MAKE) -C t/ all
 
 test-date$X: test-date.c date.o ctype.o
-	$(CC) $(ALL_CFLAGS) -o $@ test-date.c date.o ctype.o
+	$(CC) $(ALL_CFLAGS) -o $@ $(ALL_LDFLAGS) test-date.c date.o ctype.o
 
 test-delta$X: test-delta.c diff-delta.o patch-delta.o
-	$(CC) $(ALL_CFLAGS) -o $@ $^
+	$(CC) $(ALL_CFLAGS) -o $@ $(ALL_LDFLAGS) $^
 
 check:
 	for i in *.c; do sparse $(ALL_CFLAGS) $(SPARSE_FLAGS) $$i; done

```

## wa1ter@myrealbox.com, 2005-11-13 22:51

Subject: Re: [PATCH] Building git on NetBSD
Message-ID: <Pine.NEB.4.63.0511131446500.4257@x9.ybpnyarg>
URL: https://gitlist.dev/e/Pine.NEB.4.63.0511131446500.4257%40x9.ybpnyarg
In-Reply-To: <7vlkzsc262.fsf@assigned-by-dhcp.cox.net>

```
On Sun, 13 Nov 2005, Junio C Hamano wrote:

> Date: Sun, 13 Nov 2005 01:44:37 -0800
> From: Junio C Hamano <junkio@cox.net>
> Cc: git@vger.kernel.org
> Newsgroups: gmane.comp.version-control.git
> Subject: Re: [PATCH] Building git on NetBSD
>
> Junio C Hamano <junkio@cox.net> writes:
>

> > Very well.  Maybe LDFLAGS and ALL_LDFLAGS pair to parallel
> > CFLAGS and ALL_CFLAGS (the former is for the end user to
> > override from make command line, the latter is for Makefile to
> > augment and use)?
>
> Does this look OK?

<patch snipped>

Yes, git now compiles on NetBSD without modification and with no
warnings about unused linker flags.  Thanks!

```
