mirror of
https://git.proxmox.com/git/libgit2
synced 2025-08-03 03:44:21 +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')
|
||||
|
||||
ifdef MSVC
|
||||
# avoid the MinGW and Cygwin configuration sections
|
||||
uname_S := Windows
|
||||
endif
|
||||
|
||||
CFLAGS = -g -O2 -Wall
|
||||
OS = unix
|
||||
|
||||
EXTRA_SRC =
|
||||
EXTRA_OBJ =
|
||||
|
||||
AR_OUT=
|
||||
CC_OUT=-o # add a space
|
||||
|
||||
# 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)))
|
||||
NO_VISIBILITY=YesPlease
|
||||
endif
|
||||
@ -74,6 +93,7 @@ all:: $(GIT_LIB)
|
||||
clean:
|
||||
rm -f $(GIT_LIB)
|
||||
rm -f libgit2.pc
|
||||
rm -f *.pdb
|
||||
rm -f src/*.o src/sha1/*.o src/unix/*.o src/win32/*.o
|
||||
rm -rf apidocs
|
||||
rm -f *~ src/*~ src/git/*~ src/sha1/*~ src/unix/*~ src/win32/*~
|
||||
@ -119,12 +139,12 @@ uninstall:
|
||||
@rmdir $(DESTDIR)/$(prefix)/include/git
|
||||
|
||||
.c.o:
|
||||
$(CC) $(ALL_CFLAGS) -c $< -o $@
|
||||
$(CC) $(ALL_CFLAGS) -c $< $(CC_OUT)$@
|
||||
|
||||
$(OBJS): $(HDRS)
|
||||
$(GIT_LIB): $(OBJS)
|
||||
rm -f $(GIT_LIB)
|
||||
$(AR) $(GIT_LIB) $(OBJS)
|
||||
$(AR) $(AR_OUT)$(GIT_LIB) $(OBJS)
|
||||
$(RANLIB) $(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')
|
||||
|
||||
ifdef MSVC
|
||||
# avoid the MinGW and Cygwin configuration sections
|
||||
uname_S := Windows
|
||||
endif
|
||||
|
||||
CFLAGS = -g -O2 -Wall
|
||||
LIBS = -L.. -lgit2 -lz
|
||||
OS = unix
|
||||
@ -15,8 +20,22 @@ CRYPTO_LIB = -lcrypto
|
||||
|
||||
EXTRA_LIBS =
|
||||
|
||||
LD_OUT=-o # add a space
|
||||
CC_OUT=-o # add a space
|
||||
|
||||
# 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)))
|
||||
OS=win32
|
||||
EXTRA_LIBS += -lwsock32 -lpthread
|
||||
@ -50,7 +69,7 @@ ALL_LIBS = $(LIBS) $(EXTRA_LIBS)
|
||||
all:: $(TEST_RUN)
|
||||
|
||||
clean:
|
||||
rm -f *.o *.exe *.toc
|
||||
rm -f *.o *.exe *.toc *.pdb
|
||||
rm -rf trash-*.exe
|
||||
rm -f *~
|
||||
|
||||
@ -59,7 +78,7 @@ test: $(TEST_RUN)
|
||||
valgrind: $(TEST_VAL)
|
||||
|
||||
.c.o:
|
||||
$(CC) $(ALL_CFLAGS) -c $< -o $@
|
||||
$(CC) $(ALL_CFLAGS) -c $< $(CC_OUT)$@
|
||||
|
||||
T_HDR = test_lib.h test_helpers.h
|
||||
T_LIB = test_lib.o test_helpers.o
|
||||
@ -73,19 +92,19 @@ $(patsubst %.exe,%.toc,$(TEST_EXE)): %.toc: %.c
|
||||
mv $@+ $@
|
||||
|
||||
$(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: $(T_MAIN_C)
|
||||
$(patsubst %.exe,%_main.o,$(TEST_EXE)): %_main.o: %.toc
|
||||
$(CC) $(ALL_CFLAGS) '-DTEST_TOC="$<"' \
|
||||
-c $(T_MAIN_C) \
|
||||
-o $@
|
||||
$(CC_OUT)$@
|
||||
|
||||
$(TEST_EXE): %.exe: $(T_LIB)
|
||||
$(TEST_EXE): %.exe: $(GIT_LIB)
|
||||
$(TEST_EXE): %.exe: %.o %_main.o
|
||||
$(LD) -o $@ \
|
||||
$(LD) $(LD_OUT)$@ \
|
||||
$(patsubst %.exe,%_main.o,$@) \
|
||||
$(patsubst %.exe,%.o,$@) \
|
||||
$(T_LIB) $(ALL_LIBS)
|
||||
|
Loading…
Reference in New Issue
Block a user