forked from facebook/hhvm
-
Notifications
You must be signed in to change notification settings - Fork 6
Build Packages for Debian
Paul Tarjan edited this page May 15, 2013
·
1 revision
This is a work in progress!
Please follow the instructions on https://github.com/facebook/hiphop-php/wiki/Building-and-installing-HHVM-on-Debian-6 , but skip the "cmake" and "make" part. Credits go primarily to Mark A. Hershberger.
Go to your hiphop-php directory:
cd ~/dev/hiphop-php
mkdir debian
Edit debian/control:
Source: hiphop-php
Section: unknown
Priority: extra
Maintainer: Your Name <[email protected]>
Build-Depends: debhelper (>= 7), cmake
Standards-Version: 3.8.1
Homepage: http://github.com/facebook/hiphop-php
Package: hiphop-php
Architecture: amd64
Depends: ${shlibs:Depends}, ${misc:Depends}, mcrypt
Description: the php to c++ compiler
experimental debian packaging
Edit debian/changelog:
hiphop-php (0.1-1) unstable; urgency=low
* Initial package
-- Your Name <[email protected]> Tue, 1 Jan 2013 0:0:0 +010
Edit debian/hiphop-php.install:
hphp/hhvm/hhvm usr/bin/
bin/systemlib.php usr/bin/
hphp/doc/mime.hdf usr/share/hiphop-php/hdf/
../lib/libevent_core-1.4.so.2 usr/hiphop-php/lib/
../lib/libglog.so.0.0.0 usr/hiphop-php/lib/
../lib/libevent_core.so usr/hiphop-php/lib/
../lib/libcurl.a usr/hiphop-php/lib/
../lib/libevent_core-1.4.so.2.2.0 usr/hiphop-php/lib/
../lib/libevent_extra-1.4.so.2.2.0 usr/hiphop-php/lib/
../lib/pkgconfig usr/hiphop-php/lib/
../lib/pkgconfig/libglog.pc usr/hiphop-php/lib/
../lib/pkgconfig/libcurl.pc usr/hiphop-php/lib/
../lib/libevent_extra.la usr/hiphop-php/lib/
../lib/libcurl.la usr/hiphop-php/lib/
../lib/libevent_core.a usr/hiphop-php/lib/
../lib/libjemalloc.so.1 usr/hiphop-php/lib/
../lib/libcurl.so.4.3.0 usr/hiphop-php/lib/
../lib/libjemalloc.a usr/hiphop-php/lib/
../lib/libcurl.so usr/hiphop-php/lib/
../lib/libglog.so.0 usr/hiphop-php/lib/
../lib/libcurl.so.4 usr/hiphop-php/lib/
../lib/libglog.la usr/hiphop-php/lib/
../lib/libglog.a usr/hiphop-php/lib/
../lib/libevent-1.4.so.2 usr/hiphop-php/lib/
../lib/libglog.so usr/hiphop-php/lib/
../lib/libevent_core.la usr/hiphop-php/lib/
../lib/libevent_extra.a usr/hiphop-php/lib/
../lib/libevent.a usr/hiphop-php/lib/
../lib/libevent_extra.so usr/hiphop-php/lib/
../lib/libjemalloc_pic.a usr/hiphop-php/lib/
../lib/libevent_extra-1.4.so.2 usr/hiphop-php/lib/
../lib/libevent.la usr/hiphop-php/lib/
../lib/libevent-1.4.so.2.2.0 usr/hiphop-php/lib/
../lib/libjemalloc.so usr/hiphop-php/lib/
../lib/libevent.so usr/hiphop-php/lib/
Warning: the following script does not clean hiphop-php! Edit debian/rules:
#!/usr/bin/make -f
# -*- makefile -*-
# Sample debian/rules that uses debhelper.
#
# This file was originally written by Joey Hess and Craig Small.
# As a special exception, when this file is copied by dh-make into a
# dh-make output file, you may use that output file without restriction.
# This special exception was added by Craig Small in version 0.37 of dh-make.
#
# Modified to make a template file for a multi-binary package with separated
# build-arch and build-indep targets by Bill Allombert 2001
# Uncomment this to turn on verbose mode.
#export DH_VERBOSE=1
# This has to be exported to make some magic below work.
export DH_OPTIONS
export HPHP_HOME=$(CURDIR)
export HPHP_LIB=${HPHP_HOME}/bin
export USE_HHVM=1
export CMAKE_LIBRARY_PATH=/usr/lib/x86_64-linux-gnu:/lib/x86_64-linux-gnu
export MYCMAKEOPTIONS=-DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_C_FLAGS="$(CFLAGS)" -DCMAKE_LD_FLAGS="-Wl,-z,defs" -DCMAKE_CXX_FLAGS="$(CXXFLAGS)" -DCMAKE_SKIP_RPATH=ON -DCMAKE_VERBOSE_MAKEFILE=ON
# These are locations of quilt stuff
#export QUILT_PATCHES=$(shell pwd)/debian/patches
BUILDDIR=$(CURDIR)/builddir
#Architecture
build:
dh_testdir
# -quilt push -a
mkdir -p $(BUILDDIR)
# cmake -DHPHP_HOME=$(CURDIR) -DCMAKE_PROJECT_BINARY_DIR=$(CURDIR)/builddir -DPROJECT_BINARY_DIR=$(CURDIR)/builddir -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_C_FLAGS="$(CFLAGS)" -DCMAKE_LD_FLAGS="-Wl,-z,defs" $
echo "cmake $(MYCMAKEOPTIONS) .. "> ${BUILDDIR}/runbuild.sh
cd $(BUILDDIR) && sh runbuild.sh
touch $@
clean:
dh_testdir
dh_testroot
rm -f build-arch-stamp build-indep-stamp
rm -rf $(BUILDDIR)
# -quilt pop -a
# make clean
dh_clean --exclude ./src/third_party/timelib/parse_date.c.orig
install: install-indep install-arch
install-indep:
dh_testdir
dh_testroot
dh_prep -i --exclude ./src/third_party/timelib/parse_date.c.orig
dh_installdirs -i
dh_install -i
install-arch:
dh_testdir
dh_testroot
dh_prep -s --exclude ./src/third_party/timelib/parse_date.c.orig
dh_installdirs -s
$(MAKE) DESTDIR=$(CURDIR)/debian/hiphop-php install
dh_install -s
# Must not depend on anything. This is to be called by
# binary-arch/binary-indep
# in another 'make' thread.
binary-common:
dh_testdir
dh_testroot
dh_installchangelogs
dh_installdocs
dh_installexamples
dh_installman
dh_link
dh_strip
dh_compress
dh_fixperms
dh_makeshlibs
dh_installdeb
dh_gencontrol
dh_md5sums
dh_builddeb
# Build architecture independant packages using the common target.
binary-indep: build install
$(MAKE) -f debian/rules DH_OPTIONS=-i binary-common
# Build architecture dependant packages using the common target.
binary-arch: build install
dh_install --sourcedir=.
dh_install hphp/hhvm/hhvm usr/bin
$(MAKE) -f debian/rules DH_OPTIONS=-s binary-common
binary: binary-arch binary-indep
.PHONY: build clean binary-indep binary-arch binary install install-indep install-arch
Edit debian/hiphop-php.dirs:
usr/hiphop-php
usr/hiphop-php/lib
usr/hiphop-php/lib/pkgconfig
usr/share/hiphop-php
usr/share/hiphop-php/hdf
Now run the following to create binary packages:
dpkg-buildpackage -b