From 0cd166ba2e74424c813b0d1286a2291eb5d202bf Mon Sep 17 00:00:00 2001 From: bushing Date: Tue, 15 Dec 2009 02:22:38 -0800 Subject: [PATCH] fixes to make it work on the Mac --- client/Makefile | 24 +++++++++++++++++++++--- client/proxmark3.c | 18 +++++++----------- 2 files changed, 28 insertions(+), 14 deletions(-) diff --git a/client/Makefile b/client/Makefile index dc3046e..b5a2f80 100644 --- a/client/Makefile +++ b/client/Makefile @@ -1,18 +1,25 @@ WINCC=c:\mingw\bin\gcc #COMMON_FLAGS = -m32 + LDLIBS = -L/opt/local/lib -L/usr/local/lib -lusb -lreadline -lpthread LDFLAGS = $(COMMON_FLAGS) CFLAGS = -I. -I/opt/local/include -Wall -Wno-unused-function $(COMMON_FLAGS) WINLIBS = -lgdi32 -lsetupapi -#CXXFLAGS = $(shell pkg-config --cflags QtCore QtGui 2>/dev/null) -Wall -arch i386 -D_ -#QTLDLIBS = $(shell pkg-config --libs QtCore QtGui 2>/dev/null) -arch i386 +CXXFLAGS = $(shell pkg-config --cflags QtCore QtGui 2>/dev/null) -Wall +QTLDLIBS = $(shell pkg-config --libs QtCore QtGui 2>/dev/null) + +ifeq ($(shell uname),Darwin) +CXXFLAGS += -arch i386 -DQ_WS_MAC32 +CFLAGS += -arch i386 +QTLDLIBS += -arch i386 +endif ifneq ($(QTLDLIBS),) QTGUI = proxgui.o proxguiqt.o proxguiqt.moc.o CFLAGS += -DHAVE_GUI -MOC = $(shell type moc-qt4 >/dev/null 2>&1 && echo moc-qt4 || echo moc) +MOC = $(shell type moc-qt4 >/dev/null 2>&1 && echo moc-qt4 || type moc-mac >/dev/null 2>&1 && echo moc-mac || echo moc) LINK.o = $(LINK.cpp) else QTGUI = guidummy.o @@ -53,4 +60,15 @@ proxguiqt.moc.cpp: proxguiqt.h clean: $(RM) $(CLEAN) +# must be run as root +install_kext: Info.plist + mkdir -p /System/Library/Extensions/Proxmark3.kext/Contents + cp Info.plist /System/Library/Extensions/Proxmark3.kext/Contents + chown -R root:wheel /System/Library/Extensions/Proxmark3.kext + chmod 755 /System/Library/Extensions/Proxmark3.kext /System/Library/Extensions/Proxmark3.kext/Contents + chmod 644 /System/Library/Extensions/Proxmark3.kext/Contents/Info.plist + rm -rf /System/Library/Caches/com.apple.kext.caches + touch /System/Library/Extensions + @echo "*** You may need to reboot for the kext to take effect." + .PHONY: all clean diff --git a/client/proxmark3.c b/client/proxmark3.c index 280d07f..05c2fe2 100644 --- a/client/proxmark3.c +++ b/client/proxmark3.c @@ -45,21 +45,17 @@ static void *main_loop(void *targ) { struct main_loop_arg *arg = (struct main_loop_arg*)targ; char *cmd = NULL; + pthread_t reader_thread; - while(1) { + if (arg->usb_present == 1) { struct usb_receiver_arg rarg; - pthread_t reader_thread; - rarg.run=1; - if (arg->usb_present == 1) { - pthread_create(&reader_thread, NULL, &usb_receiver, &rarg); - } - cmd = readline(PROXPROMPT); - rarg.run=0; - if (arg->usb_present == 1) { - pthread_join(reader_thread, NULL); - } + pthread_create(&reader_thread, NULL, &usb_receiver, &rarg); + } + + while(1) { + cmd = readline(PROXPROMPT); if (cmd) { if (cmd[0] != 0x00) { CommandReceived(cmd); -- 2.11.4.GIT