CC=gcc
+CXX=g++
#COMMON_FLAGS = -m32
VPATH = ../common
+OBJDIR = obj
LDLIBS = -L/opt/local/lib -L/usr/local/lib -lusb -lreadline -lpthread
LDFLAGS = $(COMMON_FLAGS)
CFLAGS = -std=gnu99 -I. -I../include -I../common -I/opt/local/include -Wall -Wno-unused-function $(COMMON_FLAGS) -g3
-WINLIBS = -lgdi32 -lsetupapi
CXXFLAGS = $(shell pkg-config --cflags QtCore QtGui 2>/dev/null) -Wall
QTLDLIBS = $(shell pkg-config --libs QtCore QtGui 2>/dev/null)
cmdparser.c \
cmdmain.c
-CMDOBJS = $(CMDSRCS:.c=.o)
-
-ifeq ($(shell echo ""),)
+CMDOBJS = $(CMDSRCS:%.c=$(OBJDIR)/%.o)
ifeq ($(shell uname),Darwin)
CXXFLAGS = -I/Library/Frameworks/QtGui.framework/Versions/Current/Headers -I/Library/Frameworks/QtCore.framework/Versions/Current/Headers
endif
ifneq ($(QTLDLIBS),)
-QTGUI = proxgui.o proxguiqt.o proxguiqt.moc.o
+QTGUI = $(OBJDIR)/proxgui.o $(OBJDIR)/proxguiqt.o $(OBJDIR)/proxguiqt.moc.o
CFLAGS += -DHAVE_GUI
MOC ?= $(shell pkg-config --variable=moc_location QtCore)
LINK.o = $(LINK.cpp)
RM = rm -f
BINS = proxmark3 snooper cli flasher
-CLEAN = cli flasher proxmark3 snooper *.o $(CMDOBJS) *.moc.cpp
-else
-RM = del
-BINS = prox.exe
-CLEAN = prox.exe
-endif
+CLEAN = cli cli.exe flasher flasher.exe proxmark3 proxmark3.exe snooper snooper.exe $(CMDOBJS) $(OBJDIR)/*.o *.o *.moc.cpp
all: $(BINS)
all-static: LDLIBS:=-static $(LDLIBS)
all-static: snooper cli flasher
-
-prox.exe: prox.o wingui.o $(CMDOBJS) flash.o
- $(CC) $(CFLAGS) $(DEFINES) -o prox.exe prox.o wingui.o $(CMDOBJS) flash.c $(WINLIBS)
proxmark3: LDLIBS+=$(QTLDLIBS)
-proxmark3: proxmark3.o $(CMDOBJS) proxusb.o $(QTGUI)
+proxmark3: $(OBJDIR)/proxmark3.o $(CMDOBJS) $(OBJDIR)/proxusb.o $(QTGUI)
+ $(CXX) $(CXXFLAGS) $^ $(LDLIBS) -o $@
+
+snooper: $(OBJDIR)/snooper.o $(CMDOBJS) $(OBJDIR)/proxusb.o $(OBJDIR)/guidummy.o
+ $(CXX) $(CXXFLAGS) $^ $(LDLIBS) -o $@
+
+cli: $(OBJDIR)/cli.o $(CMDOBJS) $(OBJDIR)/proxusb.o $(OBJDIR)/guidummy.o
+ $(CXX) $(CXXFLAGS) $^ $(LDLIBS) -o $@
-snooper: snooper.o $(CMDOBJS) proxusb.o guidummy.o
+flasher: $(OBJDIR)/flash.o $(OBJDIR)/flasher.o $(OBJDIR)/proxusb.o
+ $(CXX) $(CXXFLAGS) $^ $(LDLIBS) -o $@
-cli: cli.o $(CMDOBJS) proxusb.o guidummy.o
+$(OBJDIR)/%.o: %.c
+ $(CC) $(CFLAGS) -c -o $@ $<
-flasher: flash.o flasher.o proxusb.o
+$(OBJDIR)/%.o: %.cpp
+ $(CXX) $(CXXFLAGS) -c -o $@ $<
proxguiqt.moc.cpp: proxguiqt.h
$(MOC) -o$@ $^