diff --git a/Makefile b/Makefile index 23dc52c1d9..7dd212a19e 100644 --- a/Makefile +++ b/Makefile @@ -310,7 +310,7 @@ LIB_OBJS = \ alloc.o merge-file.o path-list.o help.o unpack-trees.o $(DIFF_OBJS) \ color.o wt-status.o archive-zip.o archive-tar.o shallow.o utf8.o \ convert.o attr.o decorate.o progress.o mailmap.o symlinks.o remote.o \ - transport.o bundle.o + transport.o bundle.o walker.o BUILTIN_OBJS = \ builtin-add.o \ @@ -528,7 +528,7 @@ else endif BUILTIN_OBJS += builtin-http-fetch.o EXTLIBS += $(CURL_LIBCURL) - LIB_OBJS += http.o walker.o http-walker.o + LIB_OBJS += http.o http-walker.o curl_check := $(shell (echo 070908; curl-config --vernum) | sort -r | sed -ne 2p) ifeq "$(curl_check)" "070908" ifndef NO_EXPAT @@ -905,7 +905,7 @@ git-http-push$X: revision.o http.o http-push.o $(GITLIBS) $(QUIET_LINK)$(CC) $(ALL_CFLAGS) -o $@ $(ALL_LDFLAGS) $(filter %.o,$^) \ $(LIBS) $(CURL_LIBCURL) $(EXPAT_LIBEXPAT) -$(LIB_OBJS) $(BUILTIN_OBJS) walker.o: $(LIB_H) +$(LIB_OBJS) $(BUILTIN_OBJS): $(LIB_H) $(patsubst git-%$X,%.o,$(PROGRAMS)): $(LIB_H) $(wildcard */*.h) $(DIFF_OBJS): diffcore.h diff --git a/transport.c b/transport.c index 6fe6ec8503..46da754078 100644 --- a/transport.c +++ b/transport.c @@ -1,7 +1,9 @@ #include "cache.h" #include "transport.h" #include "run-command.h" +#ifndef NO_CURL #include "http.h" +#endif #include "pkt-line.h" #include "fetch-pack.h" #include "walker.h" @@ -368,6 +370,7 @@ static int disconnect_walker(struct transport *transport) return 0; } +#ifndef NO_CURL static int curl_transport_push(struct transport *transport, int refspec_nr, const char **refspec, int flags) { const char **argv; int argc; @@ -400,7 +403,6 @@ static int curl_transport_push(struct transport *transport, int refspec_nr, cons return !!err; } -#ifndef NO_CURL static int missing__target(int code, int result) { return /* file:// URL -- do we ever use one??? */ @@ -504,21 +506,6 @@ static int fetch_objs_via_curl(struct transport *transport, return fetch_objs_via_walker(transport, nr_objs, to_fetch); } -#else - -static struct ref *get_refs_via_curl(const struct transport *transport) -{ - die("Cannot fetch from '%s' without curl ...", transport->url); - return NULL; -} - -static int fetch_objs_via_curl(struct transport *transport, - int nr_objs, struct ref **to_fetch) -{ - die("Cannot fetch from '%s' without curl ...", transport->url); - return -1; -} - #endif struct bundle_transport_data { @@ -733,9 +720,13 @@ struct transport *transport_get(struct remote *remote, const char *url) } else if (!prefixcmp(url, "http://") || !prefixcmp(url, "https://") || !prefixcmp(url, "ftp://")) { +#ifdef NO_CURL + error("git was compiled without libcurl support."); +#else ret->get_refs_list = get_refs_via_curl; ret->fetch = fetch_objs_via_curl; ret->push = curl_transport_push; +#endif ret->disconnect = disconnect_walker; } else if (is_local(url) && is_file(url)) {