Re: [PATCH/RFC v3 02/16] Integrate remote-svn into svn-fe/Makefile.
On Tuesday 14 August 2012 13:14:12 Junio C Hamano wrote:
Show 46 quoted lines
> Florian Achleitner <florian.achleitner.2.6.31@gmail.com> writes:
> > Requires some sha.h to be used and the libraries
> > to be linked, this is currently hardcoded.
> >
> > Signed-off-by: Florian Achleitner <florian.achleitner.2.6.31@gmail.com>
> > ---
> >
> > contrib/svn-fe/Makefile | 16 ++++++++++------
> > 1 file changed, 10 insertions(+), 6 deletions(-)
> >
> > diff --git a/contrib/svn-fe/Makefile b/contrib/svn-fe/Makefile
> > index 360d8da..8f0eec2 100644
> > --- a/contrib/svn-fe/Makefile
> > +++ b/contrib/svn-fe/Makefile
> > @@ -1,14 +1,14 @@
> > -all:: svn-fe$X
> > +all:: svn-fe$X remote-svn$X
> >
> > CC = gcc
> > RM = rm -f
> > MV = mv
> >
> > -CFLAGS = -g -O2 -Wall
> > +CFLAGS = -g -O2 -Wall -DSHA1_HEADER='<openssl/sha.h>'
> > -Wdeclaration-after-statement>
> > LDFLAGS =
> > ALL_CFLAGS = $(CFLAGS)
> > ALL_LDFLAGS = $(LDFLAGS)
> >
> > -EXTLIBS =
> > +EXTLIBS = -lssl -lcrypto -lpthread ../../xdiff/lib.a
>
> I haven't looked carefully, but didn't we have to do a bit more
> elaborate when linking with ssl/crypto in our main Makefile to be
> portable across various vintages of OpenSSL libraries?
>
> Does contrib/svn-fe/ already depend on OpenSSL by the way? It needs
> to be documented somewhere in the same directory.
>
> If one builds the main Git binary with NO_OPENSSL, can this still be
> built and linked?
>
> What does this use xdiff/lib.a for?
>
> The above are just mental notes; I didn't read the later patches in
> the series that may already address these issues.
For the makefile, I've to say that this is just a hack to make it work. I'm not
sure how it would be correctly integrated into git's makefile hierarchy.
The OPENSSL header and the xdiff/lib.a are here because it doesn't work
otherwise. I need to dig into that to find out why. Any tips how to do it
right?
Show 31 quoted lines
> > GIT_LIB = ../../libgit.a
> > VCSSVN_LIB = ../../vcs-svn/lib.a
> >
> > @@ -37,8 +37,12 @@ svn-fe$X: svn-fe.o $(VCSSVN_LIB) $(GIT_LIB)
> >
> > $(QUIET_LINK)$(CC) $(ALL_CFLAGS) -o $@ svn-fe.o \
> >
> > $(ALL_LDFLAGS) $(LIBS)
> >
> > -svn-fe.o: svn-fe.c ../../vcs-svn/svndump.h
> > - $(QUIET_CC)$(CC) -I../../vcs-svn -o $*.o -c $(ALL_CFLAGS) $<
> > +remote-svn$X: remote-svn.o $(VCSSVN_LIB) $(GIT_LIB)
> > + $(QUIET_LINK)$(CC) $(ALL_CFLAGS) -o $@ remote-svn.o \
> > + $(ALL_LDFLAGS) $(LIBS)
> > +
> > +%.o: %.c ../../vcs-svn/svndump.h
> > + $(QUIET_CC)$(CC) -I../../vcs-svn -I../../ -o $*.o -c $(ALL_CFLAGS) $<
> >
> > svn-fe.html: svn-fe.txt
> >
> > $(QUIET_SUBDIR0)../../Documentation $(QUIET_SUBDIR1) \
> >
> > @@ -58,6 +62,6 @@ svn-fe.1: svn-fe.txt
> >
> > $(QUIET_SUBDIR0)../.. $(QUIET_SUBDIR1) libgit.a
> >
> > clean:
> > - $(RM) svn-fe$X svn-fe.o svn-fe.html svn-fe.xml svn-fe.1
> > + $(RM) svn-fe$X svn-fe.o svn-fe.html svn-fe.xml svn-fe.1 remote-svn.o
> >
> > .PHONY: all clean FORCE