diff options
Diffstat (limited to 'Makefile')
-rw-r--r-- | Makefile | 132 |
1 files changed, 98 insertions, 34 deletions
@@ -1,37 +1,101 @@ -all: linux - @echo "Please choose either macosx, linux, or windows" - -static: - gcc -o libirecovery.o -c src/libirecovery.c -g -I./include - ar rs libirecovery.a libirecovery.o - gcc -o irecovery src/irecovery.c -g -I./include -L. -lirecovery -lreadline -lusb-1.0 - -linux: - gcc -o libirecovery.o -c src/libirecovery.c -g -I./include -lreadline -fPIC - gcc -o libirecovery.so libirecovery.o -g -shared -Wl,-soname,libirecovery.so -lusb-1.0 - gcc -o irecovery src/irecovery.c -g -I./include -L. -lirecovery -lreadline - -macosx: - gcc -o libirecovery.dylib -c src/libirecovery.c -dynamiclib - gcc -o irecovery src/irecovery.c -I./include -L. -lirecovery -lreadline -lusb-1.0 - -windows: - gcc -o libirecovery.dll -c src/libirecovery.c -I. -lusb-1.0 -lreadline -shared -fPIC - gcc -o irecovery irecovery.c -I. -lirecovery -lreadline - -install: - cp libirecovery.so /usr/local/lib/libirecovery.so - cp include/libirecovery.h /usr/local/include/libirecovery.h - cp irecovery /usr/local/bin/irecovery - ldconfig - -uninstall: - rm -rf /usr/local/lib/libirecovery.so - rm -rf /usr/local/include/libirecovery.h - rm -rf /usr/local/bin/irecovery - -clean: - rm -rf irecovery libirecovery.o libirecovery.so libirecovery.a +AR := ar +CP := cp +CC := gcc + +UNAME := $(shell uname -s) + +ifeq ($(UNAME),Darwin) + CFLAGS = -I./include -I/usr/local/include -I/opt/local/include + LDFLAGS = -L/usr/lib -L/opt/local/lib + LIBS = -lreadline -lusb-1.0 -framework CoreFoundation -framework IOKit + + IRECOVERY_TARGET = irecovery + IRECOVERY_OBJECTS = irecovery.o libirecovery.a + IRECOVERY_CFLAGS = $(CFLAGS) + IRECOVERY_LDFLAGS = $(LDFLAGS) + IRECOVERY_LIBS = $(LIBS) + + LIBIRECOVERY_STATIC_TARGET = libirecovery.a + LIBIRECOVERY_STATIC_OBJECTS = libirecovery.o + LIBIRECOVERY_STATIC_CFLAGS = $(CFLAGS) + LIBIRECOVERY_STATIC_LDFLAGS = $(LDFLAGS) + LIBIRECOVERY_STATIC_LIBS = $(LIBS) + + LIBIRECOVERY_SHARED_TARGET = libirecovery.dylib + LIBIRECOVERY_SHARED_OBJECTS = libirecovery.o + LIBIRECOVERY_SHARED_CFLAGS = $(CFLAGS) + LIBIRECOVERY_SHARED_LDFLAGS = $(LDFLAGS) + LIBIRECOVERY_SHARED_LIBS = $(LIBS) +else + ifeq ($(UNAME),MINGW32_NT-5.1) + CFLAGS = -O3 -I include -I c:\mingw\include + LDFLAGS = -L c:\mingw\lib -lreadline + LIBS = -lreadline -lusb-1.0 -framework CoreFoundation -framework IOKit + + IRECOVERY_TARGET = irecovery.exe + IRECOVERY_OBJECTS = irecovery.o + IRECOVERY_CFLAGS = $(CFLAGS) + IRECOVERY_LDFLAGS = $(LDFLAGS) + IRECOVERY_LIBS = $(LIBS) libirecovery.a + + LIBIRECOVERY_STATIC_TARGET = libirecovery.a + LIBIRECOVERY_STATIC_OBJECTS = libirecovery.o + LIBIRECOVERY_STATIC_CFLAGS = $(CFLAGS) + LIBIRECOVERY_STATIC_LDFLAGS = $(LDFLAGS) + LIBIRECOVERY_STATIC_LIBS = $(LIBS) + + LIBIRECOVERY_SHARED_TARGET = libirecovery.dll + LIBIRECOVERY_SHARED_OBJECTS = libirecovery.o + LIBIRECOVERY_SHARED_CFLAGS = $(CFLAGS) + LIBIRECOVERY_SHARED_LDFLAGS = $(LDFLAGS) + LIBIRECOVERY_SHARED_LIBS = $(LIBS) + else + CFLAGS = -O3 -I./include -I/usr/include -I/usr/local/include + LDFLAGS = -L/usr/lib -L/usr/local/lib + LIBS = -lusb-1.0 -lreadline + IRECOVERY_TARGET = irecovery + IRECOVERY_OBJECTS = irecovery.o + IRECOVERY_CFLAGS = $(CFLAGS) + IRECOVERY_LDFLAGS = $(LDFLAGS) + IRECOVERY_LIBS = $(LIBS) + + LIBIRECOVERY_STATIC_TARGET = libirecovery.a + LIBIRECOVERY_STATIC_OBJECTS = libirecovery.o + LIBIRECOVERY_STATIC_CFLAGS = $(CLFAGS) + LIBIRECOVERY_STATIC_LDFLAGS = $(LDFLAGS) + LIBIRECOVERY_STATIC_LIBS = $(LIBS) + + LIBIRECOVERY_SHARED_TARGET = libirecovery.so + LIBIRECOVERY_SHARED_OBJECTS = libirecovery.o + LIBIRECOVERY_SHARED_CFLAGS = $(CFLAGS) + LIBIRECOVERY_SHARED_LDFLAGS = $(LDFLAGS) + LIBIRECOVERY_SHARED_LIBS = $(LIBS) + endif +endif + +LIBIRECOVERY_OBJECTS = libirecovery.o +IRECOVERY_OBJECTS = irecovery.o libirecovery.a + +TARGETS = $(LIBIRECOVERY_STATIC_TARGET) $(IRECOVERY_TARGET) +OBJECTS = libirecovery.o irecovery.o + +%.o: %.S + $(CC) -c $(<) -o $(@) $(CFLAGS) + +%.o: %.c + $(CC) -c $(<) -o $(@) $(CFLAGS) +$(LIBIRECOVERY_STATIC_TARGET): $(LIBIRECOVERY_STATIC_OBJECTS) + $(AR) rs $(LIBIRECOVERY_STATIC_TARGET) $(LIBIRECOVERY_STATIC_OBJECTS) + +$(LIBIRECOVERY_SHARED_TARGET): $(LIBIRECOVERY_SHARED_OBJECTS) + +$(IRECOVERY_TARGET): $(IRECOVERY_OBJECTS) + $(CC) -o $(IRECOVERY_TARGET) $(IRECOVERY_OBJECTS) $(IRECOVERY_CFLAGS) $(IRECOVERY_LDFLAGS) $(IRECOVERY_LIBS) + +all: $(TARGETS) + +clean: + $(RM) $(LIBIRECOVERY_STATIC_TARGET) $(IRECOVERY_TARGET) *.o
\ No newline at end of file |