generate dependencies of modules automatically
[git-cheetah/kirill.git] / Makefile
blob1ef289cee1475f8a41358c371f7970b24361942b
1 MODULES=ext.c debug.c dll.c factory.c menu.c systeminfo.c registry.c \
2 exec.c menuengine.c cheetahmenu.c columns.c
3 OBJECTS=${MODULES:%.c=%.o}
4 COMPAT_OBJ = date.o sha1_file.o strbuf.o usage.o wrapper.o \
5 compat/mingw.o compat/mmap.o compat/pread.o compat/strlcpy.o \
6 compat/winansi.o
8 ifeq ($(shell uname -o 2>/dev/null), Cygwin)
9 OSCFLAGS =-mno-cygwin -mwin32 -mdll
10 OSDLLWRAPFLAG =-mno-cygwin --target=i386-mingw32
11 endif
13 # define _WIN32_IE, so IColumnProvider's structures are available
14 CFLAGS=-O -g -DNO_MMAP -DNO_PREAD -DNO_STRLCPY -D_WIN32_IE=0x0500 $(OSCFLAGS)
15 DLLWRAPFLAGS = -Wl,--enable-stdcall-fixup $(OSDLLWRAPFLAG)
17 TARGET=git_shell_ext.dll
18 MSYSGIT_PATH=$(shell cd /; pwd -W | sed -e 's|/|\\\\\\\\|g')
19 DLL_PATH=$(shell pwd -W | sed -e 's|/|\\\\\\\\|g')\\\\$(TARGET)
21 all: $(TARGET)
23 %.o : %.c
24 $(CC) $(CFLAGS) $< -c -o $@
26 deps: $(MODULES)
27 $(CC) $(CFLAGS) -MM $(MODULES) > deps
29 $(TARGET): $(OBJECTS) $(COMPAT_OBJ) deps git_shell_ext.def
30 dllwrap.exe $(DLLWRAPFLAGS) --def git_shell_ext.def \
31 $(OBJECTS) $(COMPAT_OBJ) -o $@ -luuid -loleaut32 -lole32 -lws2_32
33 # gcc $(LDFLAGS) -o $@ $(OBJECTS) -lole32 -luuid -loleaut32
34 # dlltool -d git_shell_ext.def -l $@ $(OBJECTS)
36 -include deps
38 install: all
39 regsvr32 -s -n -i:machine $(DLL_PATH)
41 uninstall: all
42 regsvr32 -u -s -n -i:machine $(DLL_PATH)
44 install-user: all
45 regsvr32 -s $(DLL_PATH)
47 uninstall-user: all
48 regsvr32 -u -s $(DLL_PATH)
50 clean:
51 -rm -f $(OBJECTS) $(COMPAT_OBJ) $(TARGET) deps