diff --git a/macosx/Makefile b/macosx/Makefile
index 29bd21656..4c879a14a 100644
--- a/macosx/Makefile
+++ b/macosx/Makefile
@@ -4,30 +4,59 @@
NMAP_VERSION := $(shell grep '^\#[ \t]*define[ \t]\+NMAP_VERSION' ../nmap.h | sed -e 's/.*"\(.*\)".*/\1/' -e 'q')
NMAP_NUM_VERSION := $(shell grep '^\#[ \t]*define[ \t]\+NMAP_NUM_VERSION' ../nmap.h | sed -e 's/.*"\(.*\)".*/\1/' -e 'q')
-IMAGE_NAME = zenmap-$(NMAP_VERSION)$(if $(APPENDAGE),-$(APPENDAGE))
-STAGING_DIR = $(IMAGE_NAME)
+NAME_VERSION = nmap-$(NMAP_VERSION)$(if $(APPENDAGE),-$(APPENDAGE))
-DIST_FILES = $(addprefix $(STAGING_DIR)/,Zenmap.app COPYING README)
+IMAGE_STAGING_DIR = $(NAME_VERSION)
+NMAP_STAGING_DIR = Nmap
+ZENMAP_STAGING_DIR = Zenmap
+NMAP_BUILD_DIR = nmap-build
-$(IMAGE_NAME).dmg: $(DIST_FILES)
+IMAGE_NAME = $(NAME_VERSION).dmg
+PKG_NAME = $(NAME_VERSION).mpkg
+
+PREFIX = /usr/local
+
+PACKAGEMAKER = /Developer/usr/bin/packagemaker
+
+EXTRA_DIST_FILES = $(addprefix $(IMAGE_STAGING_DIR)/,COPYING README)
+
+$(IMAGE_NAME): $(IMAGE_STAGING_DIR)/$(PKG_NAME) $(EXTRA_DIST_FILES)
rm -f $@
- hdiutil create -imagekey zlib-level=9 -srcfolder $(STAGING_DIR) $@
+ hdiutil create -imagekey zlib-level=9 -srcfolder $(IMAGE_STAGING_DIR) $@
-$(STAGING_DIR)/Zenmap.app:
- mkdir -p $(STAGING_DIR)
+$(IMAGE_STAGING_DIR)/$(PKG_NAME): stage-nmap stage-zenmap
+ mkdir -p $(IMAGE_STAGING_DIR)
+ $(PACKAGEMAKER) --doc nmap.pmdoc --title "Nmap $(NMAP_VERSION)" -o $@
+
+stage-nmap:
+ rm -rf $(NMAP_BUILD_DIR)
+ svn export .. $(NMAP_BUILD_DIR)
+ svn export ../nsock $(NMAP_BUILD_DIR)/nsock
+ svn export ../nbase $(NMAP_BUILD_DIR)/nbase
+ svn export ../zenmap $(NMAP_BUILD_DIR)/zenmap
+ cd $(NMAP_BUILD_DIR) && ./configure --prefix="$(PREFIX)" --without-zenmap --with-libdnet=included --with-libpcap=included --with-libpcre=included --with-liblua=included
+ make -C $(NMAP_BUILD_DIR)
+ rm -rf $(NMAP_STAGING_DIR)
+ make -C $(NMAP_BUILD_DIR) install DESTDIR="`pwd`/$(NMAP_STAGING_DIR)"
+
+stage-zenmap:
+ mkdir -p $(ZENMAP_STAGING_DIR)/Applications
cd ../zenmap && install_scripts/macosx/make-bundle.sh
- cp -rf ../zenmap/dist/Zenmap.app $(STAGING_DIR)/
+ cp -rf ../zenmap/dist/Zenmap.app $(ZENMAP_STAGING_DIR)/Applications/
-$(STAGING_DIR)/README:
- mkdir -p $(STAGING_DIR)
- cp -f README $(STAGING_DIR)/
+$(IMAGE_STAGING_DIR)/README:
+ mkdir -p $(IMAGE_STAGING_DIR)
+ cp -f README $(IMAGE_STAGING_DIR)/
-$(STAGING_DIR)/COPYING:
- mkdir -p $(STAGING_DIR)
- cp -f ../COPYING $(STAGING_DIR)/
+$(IMAGE_STAGING_DIR)/COPYING:
+ mkdir -p $(IMAGE_STAGING_DIR)
+ cp -f ../COPYING $(IMAGE_STAGING_DIR)/
clean:
- rm -rf $(STAGING_DIR)
- rm -f $(IMAGE_NAME).dmg
+ rm -rf $(IMAGE_STAGING_DIR)
+ rm -rf $(NMAP_STAGING_DIR)
+ rm -rf $(ZENMAP_STAGING_DIR)
+ rm -rf $(NMAP_BUILD_DIR)
+ rm -f $(IMAGE_NAME)
.PHONY: clean
diff --git a/macosx/nmap.pmdoc/01nmap-contents.xml b/macosx/nmap.pmdoc/01nmap-contents.xml
new file mode 100644
index 000000000..d93b4efc9
--- /dev/null
+++ b/macosx/nmap.pmdoc/01nmap-contents.xml
@@ -0,0 +1,3 @@
+
+
+
diff --git a/macosx/nmap.pmdoc/01nmap.xml b/macosx/nmap.pmdoc/01nmap.xml
new file mode 100644
index 000000000..984d9362a
--- /dev/null
+++ b/macosx/nmap.pmdoc/01nmap.xml
@@ -0,0 +1,25 @@
+
+
+ org.insecure.nmap.nmap.pkg
+ 1
+
+
+
+ Nmap
+ /
+
+
+
+
+ parent
+ installFrom.isRelativeType
+
+
+ 01nmap-contents.xml
+ /CVS$
+ /\.svn$
+ /\.cvsignore$
+ /\.cvspass$
+ /\.DS_Store$
+
+
diff --git a/macosx/nmap.pmdoc/02zenmap-contents.xml b/macosx/nmap.pmdoc/02zenmap-contents.xml
new file mode 100644
index 000000000..a5d41b49e
--- /dev/null
+++ b/macosx/nmap.pmdoc/02zenmap-contents.xml
@@ -0,0 +1,3 @@
+
+
+
diff --git a/macosx/nmap.pmdoc/02zenmap.xml b/macosx/nmap.pmdoc/02zenmap.xml
new file mode 100644
index 000000000..ab7e5bcb6
--- /dev/null
+++ b/macosx/nmap.pmdoc/02zenmap.xml
@@ -0,0 +1,37 @@
+
+
+ org.insecure.nmap.zenmap.pkg
+ 1
+
+
+
+ Zenmap/Applications/Zenmap.app
+ /Applications
+
+
+
+
+ parent
+ installFrom.isRelativeType
+
+
+ 02zenmap-contents.xml
+
+
+
+
+
+
+
+
+
+ /CVS$
+ /\.svn$
+ /\.cvsignore$
+ /\.cvspass$
+ /\.DS_Store$
+
+
diff --git a/macosx/nmap.pmdoc/index.xml b/macosx/nmap.pmdoc/index.xml
new file mode 100644
index 000000000..5e95d1874
--- /dev/null
+++ b/macosx/nmap.pmdoc/index.xml
@@ -0,0 +1,33 @@
+
+
+ Nmap
+ org.insecure
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ - 01nmap.xml
+ - 02zenmap.xml
+ properties.customizeOption
+ properties.title
+ properties.anywhereDomain
+ properties.systemDomain
+