mirror of
https://git.proxmox.com/git/libgit2
synced 2025-08-07 07:30:27 +00:00
Makefile: Add support for building with MSVC
Signed-off-by: Ramsay Jones <ramsay@ramsay1.demon.co.uk>
This commit is contained in:
parent
73dcf2876f
commit
74eff33f8b
24
Makefile
24
Makefile
@ -18,14 +18,33 @@ libdir=$(prefix)/lib
|
|||||||
|
|
||||||
uname_S := $(shell sh -c 'uname -s 2>/dev/null || echo no')
|
uname_S := $(shell sh -c 'uname -s 2>/dev/null || echo no')
|
||||||
|
|
||||||
|
ifdef MSVC
|
||||||
|
# avoid the MinGW and Cygwin configuration sections
|
||||||
|
uname_S := Windows
|
||||||
|
endif
|
||||||
|
|
||||||
CFLAGS = -g -O2 -Wall
|
CFLAGS = -g -O2 -Wall
|
||||||
OS = unix
|
OS = unix
|
||||||
|
|
||||||
EXTRA_SRC =
|
EXTRA_SRC =
|
||||||
EXTRA_OBJ =
|
EXTRA_OBJ =
|
||||||
|
|
||||||
|
AR_OUT=
|
||||||
|
CC_OUT=-o # add a space
|
||||||
|
|
||||||
# Platform specific tweaks
|
# Platform specific tweaks
|
||||||
|
|
||||||
|
ifeq ($(uname_S),Windows)
|
||||||
|
OS=win32
|
||||||
|
RANLIB = echo
|
||||||
|
CC = cl -nologo
|
||||||
|
AR = lib -nologo
|
||||||
|
CFLAGS = -TC -W3 -RTC1 -Zi -DWIN32 -D_DEBUG -D_LIB
|
||||||
|
AR_OUT=-out:
|
||||||
|
CC_OUT=-Fo
|
||||||
|
NO_VISIBILITY=YesPlease
|
||||||
|
endif
|
||||||
|
|
||||||
ifneq (,$(findstring CYGWIN,$(uname_S)))
|
ifneq (,$(findstring CYGWIN,$(uname_S)))
|
||||||
NO_VISIBILITY=YesPlease
|
NO_VISIBILITY=YesPlease
|
||||||
endif
|
endif
|
||||||
@ -74,6 +93,7 @@ all:: $(GIT_LIB)
|
|||||||
clean:
|
clean:
|
||||||
rm -f $(GIT_LIB)
|
rm -f $(GIT_LIB)
|
||||||
rm -f libgit2.pc
|
rm -f libgit2.pc
|
||||||
|
rm -f *.pdb
|
||||||
rm -f src/*.o src/sha1/*.o src/unix/*.o src/win32/*.o
|
rm -f src/*.o src/sha1/*.o src/unix/*.o src/win32/*.o
|
||||||
rm -rf apidocs
|
rm -rf apidocs
|
||||||
rm -f *~ src/*~ src/git/*~ src/sha1/*~ src/unix/*~ src/win32/*~
|
rm -f *~ src/*~ src/git/*~ src/sha1/*~ src/unix/*~ src/win32/*~
|
||||||
@ -119,12 +139,12 @@ uninstall:
|
|||||||
@rmdir $(DESTDIR)/$(prefix)/include/git
|
@rmdir $(DESTDIR)/$(prefix)/include/git
|
||||||
|
|
||||||
.c.o:
|
.c.o:
|
||||||
$(CC) $(ALL_CFLAGS) -c $< -o $@
|
$(CC) $(ALL_CFLAGS) -c $< $(CC_OUT)$@
|
||||||
|
|
||||||
$(OBJS): $(HDRS)
|
$(OBJS): $(HDRS)
|
||||||
$(GIT_LIB): $(OBJS)
|
$(GIT_LIB): $(OBJS)
|
||||||
rm -f $(GIT_LIB)
|
rm -f $(GIT_LIB)
|
||||||
$(AR) $(GIT_LIB) $(OBJS)
|
$(AR) $(AR_OUT)$(GIT_LIB) $(OBJS)
|
||||||
$(RANLIB) $(GIT_LIB)
|
$(RANLIB) $(GIT_LIB)
|
||||||
|
|
||||||
$(TEST_OBJ) $(TEST_EXE) $(TEST_RUN) $(TEST_VAL): $(GIT_LIB)
|
$(TEST_OBJ) $(TEST_EXE) $(TEST_RUN) $(TEST_VAL): $(GIT_LIB)
|
||||||
|
@ -5,6 +5,11 @@ LD = $(CC)
|
|||||||
|
|
||||||
uname_S := $(shell sh -c 'uname -s 2>/dev/null || echo no')
|
uname_S := $(shell sh -c 'uname -s 2>/dev/null || echo no')
|
||||||
|
|
||||||
|
ifdef MSVC
|
||||||
|
# avoid the MinGW and Cygwin configuration sections
|
||||||
|
uname_S := Windows
|
||||||
|
endif
|
||||||
|
|
||||||
CFLAGS = -g -O2 -Wall
|
CFLAGS = -g -O2 -Wall
|
||||||
LIBS = -L.. -lgit2 -lz
|
LIBS = -L.. -lgit2 -lz
|
||||||
OS = unix
|
OS = unix
|
||||||
@ -15,8 +20,22 @@ CRYPTO_LIB = -lcrypto
|
|||||||
|
|
||||||
EXTRA_LIBS =
|
EXTRA_LIBS =
|
||||||
|
|
||||||
|
LD_OUT=-o # add a space
|
||||||
|
CC_OUT=-o # add a space
|
||||||
|
|
||||||
# Platform specific tweaks
|
# Platform specific tweaks
|
||||||
|
|
||||||
|
ifeq ($(uname_S),Windows)
|
||||||
|
CC = cl -nologo
|
||||||
|
LD = link -nologo
|
||||||
|
CFLAGS = -TC -W3 -RTC1 -Zi -DWIN32 -D_DEBUG -D_LIB
|
||||||
|
LD_OUT=-out:
|
||||||
|
CC_OUT=-Fo
|
||||||
|
|
||||||
|
LIBS = ..\\libgit2.a libz.lib wsock32.lib
|
||||||
|
CRYPTO_LIB = libeay32.lib
|
||||||
|
endif
|
||||||
|
|
||||||
ifneq (,$(findstring MINGW,$(uname_S)))
|
ifneq (,$(findstring MINGW,$(uname_S)))
|
||||||
OS=win32
|
OS=win32
|
||||||
EXTRA_LIBS += -lwsock32 -lpthread
|
EXTRA_LIBS += -lwsock32 -lpthread
|
||||||
@ -50,7 +69,7 @@ ALL_LIBS = $(LIBS) $(EXTRA_LIBS)
|
|||||||
all:: $(TEST_RUN)
|
all:: $(TEST_RUN)
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
rm -f *.o *.exe *.toc
|
rm -f *.o *.exe *.toc *.pdb
|
||||||
rm -rf trash-*.exe
|
rm -rf trash-*.exe
|
||||||
rm -f *~
|
rm -f *~
|
||||||
|
|
||||||
@ -59,7 +78,7 @@ test: $(TEST_RUN)
|
|||||||
valgrind: $(TEST_VAL)
|
valgrind: $(TEST_VAL)
|
||||||
|
|
||||||
.c.o:
|
.c.o:
|
||||||
$(CC) $(ALL_CFLAGS) -c $< -o $@
|
$(CC) $(ALL_CFLAGS) -c $< $(CC_OUT)$@
|
||||||
|
|
||||||
T_HDR = test_lib.h test_helpers.h
|
T_HDR = test_lib.h test_helpers.h
|
||||||
T_LIB = test_lib.o test_helpers.o
|
T_LIB = test_lib.o test_helpers.o
|
||||||
@ -73,19 +92,19 @@ $(patsubst %.exe,%.toc,$(TEST_EXE)): %.toc: %.c
|
|||||||
mv $@+ $@
|
mv $@+ $@
|
||||||
|
|
||||||
$(TEST_OBJ): %.o: %.c
|
$(TEST_OBJ): %.o: %.c
|
||||||
$(CC) $(ALL_CFLAGS) -c $< -o $@
|
$(CC) $(ALL_CFLAGS) -c $< $(CC_OUT)$@
|
||||||
|
|
||||||
$(patsubst %.exe,%_main.o,$(TEST_EXE)): %_main.o: $(HDRS)
|
$(patsubst %.exe,%_main.o,$(TEST_EXE)): %_main.o: $(HDRS)
|
||||||
$(patsubst %.exe,%_main.o,$(TEST_EXE)): %_main.o: $(T_MAIN_C)
|
$(patsubst %.exe,%_main.o,$(TEST_EXE)): %_main.o: $(T_MAIN_C)
|
||||||
$(patsubst %.exe,%_main.o,$(TEST_EXE)): %_main.o: %.toc
|
$(patsubst %.exe,%_main.o,$(TEST_EXE)): %_main.o: %.toc
|
||||||
$(CC) $(ALL_CFLAGS) '-DTEST_TOC="$<"' \
|
$(CC) $(ALL_CFLAGS) '-DTEST_TOC="$<"' \
|
||||||
-c $(T_MAIN_C) \
|
-c $(T_MAIN_C) \
|
||||||
-o $@
|
$(CC_OUT)$@
|
||||||
|
|
||||||
$(TEST_EXE): %.exe: $(T_LIB)
|
$(TEST_EXE): %.exe: $(T_LIB)
|
||||||
$(TEST_EXE): %.exe: $(GIT_LIB)
|
$(TEST_EXE): %.exe: $(GIT_LIB)
|
||||||
$(TEST_EXE): %.exe: %.o %_main.o
|
$(TEST_EXE): %.exe: %.o %_main.o
|
||||||
$(LD) -o $@ \
|
$(LD) $(LD_OUT)$@ \
|
||||||
$(patsubst %.exe,%_main.o,$@) \
|
$(patsubst %.exe,%_main.o,$@) \
|
||||||
$(patsubst %.exe,%.o,$@) \
|
$(patsubst %.exe,%.o,$@) \
|
||||||
$(T_LIB) $(ALL_LIBS)
|
$(T_LIB) $(ALL_LIBS)
|
||||||
|
Loading…
Reference in New Issue
Block a user