include $(MAKEFILEPATH)/pb_makefiles/platform.make
include $(MAKEFILEPATH)/pb_makefiles/commands-$(OS).make
PROJECT_NAME = MySQL
MYSQL_VERSION = mysql-4.1.10a
BUILD_DIR = /usr
STAGING_DIR := $(shell mktemp -d /tmp/mysql-tmp-XXXXXX)
SHARE_DIR = /usr/share
MYSQL_SHARE_DIR = $(SHARE_DIR)/mysql
VERSIONS_DIR=/usr/local/OpenSourceVersions
LICENSE_DIR=/usr/local/OpenSourceLicenses
INSTALL = /usr/bin/install
DITTO = /usr/bin/ditto
FILES = $(MYSQL_VERSION).tar.gz mysqlman.1 Makefile \
config.h.in.patch MySQL.plist MySQL.txt
FILES_TO_REMOVE = \
/usr/share/info/dir \
$(MYSQL_SHARE_DIR)/Info.plist \
$(MYSQL_SHARE_DIR)/Makefile \
$(MYSQL_SHARE_DIR)/ReadMe.txt \
$(MYSQL_SHARE_DIR)/StartupParameters.plist \
$(MYSQL_SHARE_DIR)/postinstall \
$(MYSQL_SHARE_DIR)/preinstall \
$(MYSQL_SHARE_DIR)/Description.plist \
$(MYSQL_SHARE_DIR)/make_win_src_distribution \
/usr/bin/make_win_binary_distribution \
/usr/bin/make_win_src_distribution
FILES_TO_LINK = \
client_test \
comp_err \
msql2mysql \
my_print_defaults \
myisam_ftdump \
myisamchk \
myisamlog \
myisampack \
mysql_client_test \
mysql_config \
mysql_convert_table_format \
mysql_create_system_tables \
mysql_explain_log \
mysql_find_rows \
mysql_fix_extensions \
mysql_install_db \
mysql_secure_installation \
mysql_setpermission \
mysql_tableinfo \
mysql_tzinfo_to_sql \
mysql_waitpid \
mysqlbinlog \
mysqlbug \
mysqlcheck \
mysqldumpslow \
mysqlhotcopy \
mysqlimport \
mysqlmanager \
mysqlmanager-pwgen \
mysqlmanagerc \
mysqltest \
pack_isam \
resolve_stack_dump \
resolveip
default: build
clean:
$(SILENT) $(ECHO) "Cleaning $(PROJECT_NAME)..."
$(SILENT) -$(RM) -rf mysql
installhdrs:
$(SILENT) $(ECHO) "$(PROJECT_NAME) has no headers to install in $(SRCROOT)..."
installsrc:
$(SILENT) $(ECHO) "Installing $(PROJECT_NAME) sources in $(SRCROOT)..."
$(SILENT) -$(RM) -rf $(SRCROOT)
$(SILENT) $(MKDIRS) $(SRCROOT)
$(SILENT) $(CP) $(FILES) $(SRCROOT)
mysql: $(OBJROOT)
$(SILENT) -$(RM) -rf $(MYSQL_VERSION) mysql
$(SILENT) $(TAR) -xzf $(MYSQL_VERSION).tar.gz
$(SILENT) $(MV) $(MYSQL_VERSION) mysql
untar: mysql
mysql/config.status: untar
$(SILENT) $(ECHO) "Patching..."
$(SILENT) $(CD) mysql; patch -i ../config.h.in.patch
$(SILENT) $(ECHO) "Configuring mysql..."
$(SILENT) $(CD) mysql;\
CFLAGS="-O3 -fno-omit-frame-pointer $$RC_CFLAGS" \
CXX=gcc \
CXXFLAGS="-O3 -fno-omit-frame-pointer -felide-constructors -fno-exceptions -fno-rtti $$RC_CFLAGS" \
LDFLAGS="$$RC_CFLAGS" \
./configure --infodir=/usr/share/info \
--with-extra-charsets=complex \
--with-low-memory \
--enable-thread-safe-client \
--enable-local-infile \
--mandir=/usr/share/man \
--localstatedir=/var/mysql \
--sysconfdir=/etc \
--with-mysqld-user=mysql \
--without-bench \
--without-debug \
--disable-shared \
--with-unix-socket-path=/var/mysql/mysql.sock \
--prefix=$(BUILD_DIR)
configure: mysql/config.status
build: configure
$(SILENT) $(ECHO) "Building mysql..."
$(SILENT) $(CD) mysql;make
install: build $(STAGING_DIR)$(VERSIONS_DIR) $(STAGING_DIR)$(LICENSE_DIR)
$(SILENT) $(ECHO) "Installing mysql..."
$(SILENT) $(CD) mysql;make install DESTDIR=$(STAGING_DIR)
$(SILENT) $(CP) mysqlman.1 $(STAGING_DIR)/usr/share/man/man1
$(SILENT) $(INSTALL) -m 444 -o root -g wheel MySQL.plist $(STAGING_DIR)/$(VERSIONS_DIR)
$(SILENT) $(INSTALL) -m 444 -o root -g wheel MySQL.txt $(STAGING_DIR)/$(LICENSE_DIR)
$(SILENT) $(ECHO) "Fixing up $(PROJECT_NAME), staging from $(STAGING_DIR)..."
$(SILENT) -$(MV) $(STAGING_DIR)/$(BUILD_DIR)/mysql-test $(STAGING_DIR)/$(MYSQL_SHARE_DIR)
for i in $(FILES_TO_REMOVE); do \
rm -r -f $(STAGING_DIR)/$$i; \
done
$(SILENT) -$(STRIP) $(STAGING_DIR)/usr/libexec/* > /dev/null 2>&1
$(SILENT) -$(STRIP) $(STAGING_DIR)/usr/lib/mysql/* > /dev/null 2>&1
$(SILENT) -$(STRIP) $(STAGING_DIR)/usr/bin/* > /dev/null 2>&1
for i in $(FILES_TO_LINK); do \
ln $(STAGING_DIR)/$(SHARE_DIR)/man/man1/mysqlman.1 $(STAGING_DIR)/$(SHARE_DIR)/man/man1/$$i.1; \
done
$(SILENT) $(CP) $(STAGING_DIR)/usr/bin/mysql_config $(STAGING_DIR)/usr/bin/mysql_config-tmp
$(SILENT) $(SED) < $(STAGING_DIR)/usr/bin/mysql_config-tmp > $(STAGING_DIR)/usr/bin/mysql_config -e 's%-arch i386%%' -e 's%-arch ppc%%'
$(SILENT) $(RM) -r -f $(STAGING_DIR)/usr/bin/mysql_config-tmp
$(SILENT) $(DITTO) $(STAGING_DIR) $(DSTROOT)
$(SILENT) $(RM) -r -f $(STAGING_DIR)
$(SILENT) $(ECHO) "# The latest information about MySQL is available on the web at http://www.mysql.com."
$(SILENT) $(ECHO) "# Use MySQL Manager app to initialize MySQL database."
$(BUILD_DIR):
$(SILENT) $(MKDIRS) $@
$(STAGING_DIR)$(BUILD_DIR):
$(SILENT) $(MKDIRS) $@
$(STAGING_DIR)$(VERSIONS_DIR):
$(SILENT) $(MKDIRS) $@
$(STAGING_DIR)$(LICENSE_DIR):
$(SILENT) $(MKDIRS) $@
$(STAGING_DIR):
$(SILENT) $(MKDIRS) $@
$(DSTROOT):
$(SILENT) $(MKDIRS) $@
$(OBJROOT):
$(SILENT) $(MKDIRS) $@