diff options
author | Adrien Nader <adrien@notk.org> | 2015-02-22 21:23:12 +0100 |
---|---|---|
committer | Adrien Nader <adrien@notk.org> | 2015-02-22 21:23:12 +0100 |
commit | afcd495795648c0b2db3f98acebb0e3fffedc54a (patch) | |
tree | db643d05081877ff6f3d47f4ac43fc5830fe7a72 | |
parent | c9acbff09a07a4f8ff3655c9e8d4fcf986dbb7ab (diff) |
doc: rm; t's better in dokuwiki.
-rw-r--r-- | doc/Makefile | 28 | ||||
-rw-r--r-- | doc/linux.txt | 298 | ||||
-rw-r--r-- | doc/msys-cygwin.txt | 114 | ||||
-rw-r--r-- | doc/packaging.txt | 220 |
4 files changed, 0 insertions, 660 deletions
diff --git a/doc/Makefile b/doc/Makefile deleted file mode 100644 index 30ef52c..0000000 --- a/doc/Makefile +++ /dev/null @@ -1,28 +0,0 @@ -include ../Makefile.data - -DOCS := packaging msys-cygwin linux -DOCS_TXT := $(DOCS:%=%.txt) -DOCS_HTML := $(DOCS:%=%.html) - -version.config: ../Makefile.data Makefile - echo '[blockdef-listing]' > $@ - echo 'subs=specialcharacters,callouts,replacements' >> $@ - echo '[replacements]' >> $@ - echo '@@VERSION@@=$(VERSION)' >> $@ - echo '@@VERSION@@=$(VERSION)' >> $@ - echo '@@MIRROR@@=$(MIRROR)' >> $@ - -%.html: %.txt version.config - a2x -f xhtml \ - --stylesheet="docbook-xsl.css style.css" \ - --resource=../web \ - --asciidoc-opts="--conf-file version.config" \ - $< - -doc: $(DOCS_HTML) - -doc-upload: doc - rsync -avLP $(DOCS_HTML) $(DOCS_TXT) docbook-xsl.css ../web/style.css "$(WEB)/$(VERSION)/" - -clean: - rm -f $(DOCS_HTML) diff --git a/doc/linux.txt b/doc/linux.txt deleted file mode 100644 index 8698c57..0000000 --- a/doc/linux.txt +++ /dev/null @@ -1,298 +0,0 @@ -= Linux installation = - -No Linux binaries are provided because of the differences between -distributions. The usual approach is to build the cross-compiler on the -host system and then re-use the pre-built windows packages (since they -are independent of the system used to build). - -There are three steps: - -* build yypkg -* build the cross-compiler -* acquire or build the windows binaries - -The packages are split into three series: "native", "cross_toolchain" and -"windows": - -* "native" adds native tools which must be of a specific version; for instance, - it installs EFL because the cross-compilation of EFL needs to run tools - which must be of the exact same version; -* "cross_toolchain" builds the cross-compilation toolchain; -* "windows" cross-compiles the binaries that will run on windows - -Building takes a fairly large amount of space: up to 2GB for -"native_toolchain", 2GB for "cross_toolchain_*" and 7.5GB for "windows_*" -(but this series can be retrieved instead of being built). -Around 90% of this space is made up of temporary files in 'tmp' directories. -At _peak_ it can also use a lot of memory, having 2GB of memory available -(swap excluded) is advised. - -== Dependencies == - -The per-distributions package lists below are here to help you get all the -dependencies easily. The Debian/Ubuntu list is exhaustive and is the -reference. For other distributions, if you are able to complete the lists with -the right package name, please send it either on the -link:/support.html[users mailing list] or on the link:/bugs[bug tracker]. - -[[Debian]] -=== Debian (squeeze or wheezy) and Ubuntu (>= 12.04) === - ------------------------------------------------------------------------- -apt-get install ocaml-nox ocaml-findlib libarchive-dev bsdtar texinfo \ -libudev-dev intltool libpng-dev gtk-doc-tools tcl8.5 libgdk-pixbuf2.0-dev yasm \ -autotools-dev autopoint automake flex bison libdbus-1-dev libgmp-dev \ -libmpfr-dev libmpc-dev xutils-dev git libgtk2.0-bin texi2html cmake texinfo \ -librsvg2-bin imagemagick liblzma5 liblzma-dev gperf libreadline6-dev -apt-get build-dep libelementary-dev ------------------------------------------------------------------------- - -There are several issues when building on older Debian and Ubuntu versions. -You will avoid all of them but two if you re-use the pre-built packages from -win-builds.org but you may encounter them when building your own software. -Upgrading your distribution is strongly advised. - -* Debian wheezy and Ubuntu 12.04 have an ocamlfind version that is too old to - build yypkg. You can safely -link:http://projects.camlcity.org/projects/findlib.html[install a new version -by hand] on top of the system one. - -* Debian wheezy and Ubuntu 12.04 have an old 'autoreconf' that generates -bad code; avoid calling it when developing, use a backport or migrate. -Build scripts do their best to avoid calling it but it is needed for some -packages (madplay, libtheora and libxml2 [can be commented out]) which can -therefore not be rebuilt on vanilla Debian wheezy and Ubuntu 12.04. - -* Debian wheezy has old yasm which x264 doesn't handle; disable x264's -build and its use in ffmpeg (link:#_build_script_configuration[edit build -script config] and link:#_modify_the_package_lists[remove x264 from the -dependency list of ffmpeg]), use a backport or migrate. - -* Qt doesn't build on debian wheezy for 32b; cause is not known. This prevents - building with Qt tools ('qmake', 'moc', etc.). - -=== Arch Linux === - -Install the following from the main repositories: ------------------------------------------------------------------------- -intltool ocaml ocaml-findlib wget ------------------------------------------------------------------------- - -Install the following from AUR: ------------------------------------------------------------------------- -makedepend ------------------------------------------------------------------------- - -You might also have to read and adapt the list in the <<Debian,Debian>> -section to fit Arch Linux. - -=== Exherbo === - -List below is incomplete: read and adapt the list in the <<Debian,Debian>> -section to fit Exherbo. - ------------------------------------------------------------------------- -cave resolve -x dev-ocaml/findlib dev-lang/ocaml '>=app-arch/libarchive-3.1.2-r2' ------------------------------------------------------------------------- - -=== Slackware === - -A default slackware install ships almost everything needed. The only -exceptions are -link:http://slackbuilds.org/repository/14.1/development/ocaml/[OCaml] and -link:http://slackbuilds.org/repository/14.1/libraries/ocaml-findlib/[ocaml-findlib] -(both on http://slackbuilds.org). - -They can be installed through sbopkg with the following command: ------------------------------------------------------------------------- -sbopkg -i "ocaml ocaml-findlib" ------------------------------------------------------------------------- - -Slackware -current as of September 2014 has proper software for the build and -is the main development platform for win-builds. - -Previous Slackware versions have some components that are too old. Overall -they should work except for their older version of automake which can be an -issue for madplay, libtheora and libxml2 (see the <<Debian,section on the -topic in the documentation for Debian>>). It is strongly advised to migrate to --current (or any release more recent than 14.1) if rebuilding these packages -is wanted. - -== Retrieve sources == -Run the following to get all the source files: - ------------------------------------------------------------------------- -for repo in win-builds mingw slackware64-current slackbuilds.org; do - git clone http://git.notk.org/gitolite/win-builds/${repo}.git -done - ------------------------------------------------------------------------- - -NOTE: this can fail with git 1.7.2 and is fixed in git 1.8.0 (commit "http: fix -segfault in handle_curl_result"). - -When the build runs, if some source tarball is not available on disk or has a -SHA1 which doesn't match, it will be downloaded from the source mirror at -@@MIRROR@@, overwriting any existing file. - -== Yypkg == - -Build of yypkg and its dependencies is automated; run - ------------------------------------------------------------------------- -make -C win-builds/yypkg ------------------------------------------------------------------------- - -Then, install as root (it copies a single executable to /usr/local/bin), run: ------------------------------------------------------------------------- -make -C win-builds/yypkg install ------------------------------------------------------------------------- - -To install to a different location, set the BINDIR variable: ------------------------------------------------------------------------- -make -C win-builds/yypkg install BINDIR=/usr/local/bin ------------------------------------------------------------------------- - -== Build the cross-compiler == - -Building the packages requires a root environment (for chown and umask); -such an environment can also be emulated through fakeroot for convenience. - -Everything will be installed inside `/opt`. The reason is that it is available -on all systems and binaries tend to store paths, making them not portable if -paths change. If you intend to rebuild all packages on your machine -anyway, you can edit `build/config.ml`, look for `/opt/` and replace it with -the value you wish. - -If a build fails, you should look at the log file stored as -`@@VERSION@@/logs/<series>/<package_name>`. - -* As root: - ------------------------------------------------------------------------- -make -C win-builds NATIVE_TOOLCHAIN=all CROSS_TOOLCHAIN=all ------------------------------------------------------------------------- - -* Or, using fakeroot: - -First create the needed directories as root and chown them to yourself; -symlinks will work just fine: - ------------------------------------------------------------------------- -mkdir opt -for d in native_toolchain cross_toolchain_{32,64} windows_{32,64}; do - mkdir $(pwd)/opt/${d} - sudo ln -s $(pwd)/opt/${d} /opt/${d} -done ------------------------------------------------------------------------- - -Then: - ------------------------------------------------------------------------- -fakeroot make -C win-builds NATIVE_TOOLCHAIN=all CROSS_TOOLCHAIN=all ------------------------------------------------------------------------- - -== Get the Windows binaries == - -There are two approaches possible: - -* Download package (a couple minutes of download (2*110MB)): - ------------------------------------------------------------------------- -make -C win-builds WINDOWS=download ------------------------------------------------------------------------- - -A few commands will try to run at the very end of the installation and will -fail. These can be safely ignored. - -* Build the packages yourself (a few hours of CPU time): - ------------------------------------------------------------------------- -make -C win-builds WINDOWS=all ------------------------------------------------------------------------- - -== Customization (optional) == - -=== Selective rebuilds === - -Chosing which packages are to be built is done through environment variables. -There are 7 of them: - -* WINDOWS_32, WINDOWS_64: packages which executables will run on Windows for - 32 or 64 bits -* WINDOWS: short-hand: 'WINDOWS=foo' is equivalent to 'WINDOWS_32=foo - WINDOWS_64=foo' -* CROSS_TOOLCHAIN_32, CROSS_TOOLCHAIN_64: the cross-compilation toolchain - which runs on your current system and targets Windows for 32 or 64 bits -* CROSS_TOOLCHAIN: short-hand: 'CROSS_TOOLCHAIN=foo' is equivalent to - 'CROSS_TOOLCHAIN_32=foo CROSS_TOOLCHAIN_64=foo' -* NATIVE_TOOLCHAIN: some build-time dependencies for packages above; they are - either common but required to be at a specific version or uncommon - -The value of these environment variables is the list of packages to build. -As an example, to build only the "cross_toolchain" and "windows" series, -one would run: - -------------------------------------------------------------------------- -make -C win-builds CROSS_TOOLCHAIN=all WINDOWS=all ------------------------------------------------------------------------- - -The package "all" is virtual and selects every stable package from the series. - -When a package has variants (several configuration presets), the identifier is -of the form '$\{package\}:$\{preset\}'. - -NOTE: cross-series dependencies are not handled meaning that in this specific -example, you need to have built the NATIVE_TOOLCHAIN series first. - -Last, if you want to build a specific set of packages, you need to call make -as such: - ------------------------------------------------------------------------- -make -C win-builds WINDOWS=libjpeg,libpng,lua ------------------------------------------------------------------------- - -Packages will only get rebuilt if at least one of their sources is more recent -than the output package. However, the rebuild of a package doesn't trigger the -rebuild of packages that depend on it in order to avoid excessive rebuilds -(unless for specific cases, this isn't a problem thanks to the use of shared -libraries in win-builds). - -=== Build script configuration === - -The configuration for most packages is stored directly inside the build -scripts. The packages which have variants have their configuration in a -separate file in the same directory as the build script and named -'config-$\{variant}'. - -=== Modify the package lists === - -The list of packages to build is stored inside three files: -'win-builds/native_toolchain.ml', 'win-builds/cross_toolchain.ml', -'win-builds/windows.ml' as straightforward OCaml code. - -A package description is made of a name, a variant (which is mostly useful for -bootstrapping a minimal version of a package before being able to build the -full one), a directory where its sources are stored, its dependencies, -version, build number and sources. - -Below is the description for the freetype package from the windows series: - ------------------------------------------------------------------------- -let freetype = add ("freetype", None) - ~dir:"slackware64-current/l" - ~dependencies:[ zlib; libpng ] - ~version:"2.5.0.1" - ~build:1 - ~sources:[ - "freetype-${VERSION}.tar.xz"; - "freetype.illadvisederror.diff.gz"; - "freetype.subpixel.rendering.diff.gz"; - ] -in ------------------------------------------------------------------------- - -The package is named "freetype", doesn't have a variant ("None" in the code), -is stored inside the "slackware64-current/l" directory, depends on zlib -and libpng, is at version 2.5.0.1, first build, and has three package-specific -sources: its source tarball and two patches. diff --git a/doc/msys-cygwin.txt b/doc/msys-cygwin.txt deleted file mode 100644 index c961a19..0000000 --- a/doc/msys-cygwin.txt +++ /dev/null @@ -1,114 +0,0 @@ -= Installation For Use With MSYS or Cygwin = - -This tutorial will guide you through a typical installation of Win-builds with -MSYS or Cygwin. Most of it has been contributed by Vincent Torri. - -== Installation of a POSIX-like environment == - -The sections below explain how to install Cygwin and MSYS. Only one of them is -needed; in doubt, install Cygwin rather than MSYS since the latter has a few -specifics which are hard to guess. - -=== Cygwin Installation === -1. Download either link:http://cygwin.com/setup-x86.exe[setup-x86.exe] or -link:http://cygwin.com/setup-x86_64.exe[setup-x86_64.exe] (setup-x86.exe will -work fine on both 32b and 64b systems). - -2. Run the installer. In the examples below, Cygwin is supposed to have been -installed in 'C:/Cygwin'. - -3. When prompted for the list of packages to install, chose at least one of -'mingw-w64-i686-gcc-g\+\+' or 'mingw-w64-x86_64-gcc-g++' which are located in -the 'Devel' category along with 'pkg-config' from the same category. -You are of course free to install more packages to satisfy the needs of your -projects. - -4. Proceed until the end of the installation (downloading takes some time). - -=== MSYS Installation === -1. Download -link:http://sourceforge.net/projects/mingw/files/Installer/mingw-get-setup.exe/download[mingw-get-setup.exe] -and run it. - -2. Click on 'Install'. - -3. Click on 'Change' to chose another installation directory, go to 'C:/' and -make a new directory named 'win_builds' and validate. You are free to install -anywhere else but remember to keep the various paths consistent. - -4. Click on 'Continue'. - -5. Once the progress reaches 100%, click on 'Next'. - -6. In the new window, select 'All packages' and then 'MSYS Base System'. - -7. On the right of the window, right-click on 'msys-base' and select 'Mark for -installation'. Do the same for 'msys-bash'. - -8. Now click on 'Installation' in the menu bar at the top of the window and -then 'Apply Changes'. - -9. In the new window, click on 'Apply'. Once everything is installed, use the -'Close' button and exit the installer. - -10. Go to 'C:/win_builds/msys/1.0/' , right-click on 'msys.bat', hover over -'Send To' and chose 'Desktop (create shortcut)'. - -== Win-builds Installation == - -link:win-builds-@@VERSION@@.exe[Download the installer], extract it and run -bin/yypkg-@@VERSION@@.exe. Select one of Cygwin or MSYS, set the architecture -for which to install binaries (64b host is required to use the 64b toolchain) -and provide their installation path. Run the installer a second time if you -want to install for a second architecture. - -== Change toolchain on-the-fly == - -The 'win-builds-switch' script takes care of everything; source it in your -shell: - ------------------------------------------------------------------------- -# To switch to the i686 toolchain -source /opt/windows_32/bin/win-builds-switch -# To switch to the x86_64 toolchain -source /opt/windows_64/bin/win-builds-switch ------------------------------------------------------------------------- - -== Set a default toolchain (optional) == - -The easiest way to set a toolchain by default is to add its selection to the -user's profile. The command will be executed each time an interactive shell is -started and will be valid for everything started from them. - ------------------------------------------------------------------------- -echo 'source /opt/windows_32/bin/win-builds-switch' >> ~/.profile ------------------------------------------------------------------------- - -== Check gcc works == - -First, copy and paste the following to a file name 'gtk_hello_world.c': - ------------------------------------------------------------------------- -#include <gtk/gtk.h> - -int main(int argc, char *argv[]) { - GtkWidget *window; - gtk_init (&argc, &argv); - window = gtk_window_new (GTK_WINDOW_TOPLEVEL); - gtk_widget_show (window); - gtk_main (); - return 0; -} ------------------------------------------------------------------------- - -Then run the following commands in order to test each toolchain: - ------------------------------------------------------------------------- -# First, the 32 bits toolchain -source /opt/windows_32/bin/win-builds-switch -i686-w64-mingw32-gcc -o gtk_hello_world.exe gtk_hello_world.c $(pkg-config --cflags --libs gtk+-2.0) - -# Then, the 64 bits toolchain -source /opt/windows_64/bin/win-builds-switch -x86_64-w64-mingw32-gcc -o gtk_hello_world.exe gtk_hello_world.c $(pkg-config --cflags --libs gtk+-2.0) ------------------------------------------------------------------------- diff --git a/doc/packaging.txt b/doc/packaging.txt deleted file mode 100644 index 2f3784d..0000000 --- a/doc/packaging.txt +++ /dev/null @@ -1,220 +0,0 @@ -= Packaging = - -== Environment == -If you haven't already, build the packages that already exist. This will -ensure you have everything needed and working; you can check -link:linux.html[the corresponding documentation]. - -== Be ready to ask questions == -Packaging is usually an experience with many issues and dirty work-arounds. -Some of these are quite common and easy to spot for someone who has already -seen similar issues so don't hesitate to hit link:/support.html[one of the -support channels] ans ask questions. - -The questions will help build documentation. For issues that have already been -solved elsewhere in the project the answers will be easy; the difficult part -is in making the list of possible issues. Again, don't hesitate to ask. - -== Check whether a Linux build script already exists == - -There is a fairly large number of slackware build scripts, either -- In one of the subdirectory (a "series") of - link:http://cgit.notk.org/adrien/slackware-git-track/slackware64-current.ext.git/tree/slackware64-current/source[slackware] -- On link:http://slackbuilds.org[slackbuilds.org] (community repository of - build scripts) which full repository is in the "`slackbuilds.org`" directory. - -If such a build script exist, read <<Existing>>. Otherwise, read <<New>>. - -[[Existing]] -== Port an existing build script == -=== Copy the build script === -For slackbuilds.org all the files are already there. For slackware64-current, -you need to copy them first. For example, libgcrypt is inside -"`slackware64-current/n`" so you'd run a command similar to this one: - ------------------------------------------------------------------------- -cd slackware64-current/n -lftp -c 'connect http://mirrors.slackware.com/slackware/slackware64-current/source/n; mirror libgcrypt' ------------------------------------------------------------------------- - -=== Port the build script (mostly search-replace) === -* Add a '.yypkg.script' file to the package directory; if you have nothing - specific to set for the packaging (by far the usual case), you only have to - "`cp`" another one; any will do except gcc's; don't forget to name it after - the package however. For instance: -+ ------------------------------------------------------------------------- -cp ../../l/libjpeg.yypkg.script newpackage.yypkg.script ------------------------------------------------------------------------- - -* Update the values for "`packager_email`" and "`packager_name`" in the - '.yypkg.script' file. - -* Replace all occurrences of "`usr`" with "`${PREFIX}`" (verbatim: don't - expand the variable). This means "`/usr/`" becomes "`${PREFIX}`". - -* Delete the block of code that sets `SLKCFLAGS` and `LIBDIRSUFFIX`; it starts -like this: -+ ------------------------------------------------------------------------- -if [ "$ARCH" = "i486" ]; then - SLKCFLAGS="-O2 -march=i486 -mtune=i686" - LIBDIRSUFFIX="" -elif [ "$ARCH" = "i686" ]; then ------------------------------------------------------------------------- - -* Replace occurrences of "`$SLKCFLAGS`" with "`-O2`" -* Add "`--host=${HOST_TRIPLET}`" to the configure invocation. If this involves - adding a newline in a configure call, don't forget to escape it with "`\`" - right before it. - -* Locate the "`strip`" invocation; it looks like: -+ ------------------------------------------------------------------------- -find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \ - | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null || true ------------------------------------------------------------------------- -+ -Replace "`grep ELF`" with "`grep ${HOST_EXE_FORMAT}`" and "`xargs strip`" with -"`xargs ${HOST_STRIP}`". - -* Go near the end of the file and replace: -+ ------------------------------------------------------------------------- -mkdir -p $PKG/install -cat $CWD/slack-desc > $PKG/install/slack-desc - -cd $PKG -/sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.${PKGTYPE:-tgz} ------------------------------------------------------------------------- -+ -with -+ ------------------------------------------------------------------------- -cat ${CWD}/${PKGNAM}.yypkg.script | sed \ - -e "s/%{PKG}/${PKGNAM}/" \ - -e "s/%{HST}/${HOST_TRIPLET}/" \ - -e "s/%{TGT}//" \ - -e "s/%{VER}/${VERSION}/" \ - -e "s/%{BUILD}/${BUILD}/" \ - -e "s/%{DESCR}/${DESCR:-"No description"}/" \ - | yypkg --makepkg -o ${YYOUTPUT} --script - --directory "${PKG}/${PREFIX}" ------------------------------------------------------------------------- -+ -Some packages don't set the 'PKGNAM' variable but instead hardcode the -package name throughout the script; in that case, use the package name -instead of "`${PKGNAM}`". - -* If there are many source files, replace the 'find + chmod' - commands which are used to reset file permissions to sane default with: -+ ------------------------------------------------------------------------- -chmod -R u+w,go+r-w,a-s . ------------------------------------------------------------------------- - -[[New]] -== Or, start from a similar package == -Create a new directory for your package inside "`mingw/`" and copy an existing -build script that is similar: - -* for autotools-based systems, copy - "`slackware64-current/n/libgcrypt.SlackBuild`" and - "`slackware64-current/n/libgcrypt.yypkg.script`" -* for cmake-based systems, copy - "`slackbuilds.org/libraries/openjpeg.SlackBuild`" and - "`slackbuilds.org/libraries/openjpeg.yypkg.script`" - -CMake-based build systems are much less friendly for cross-compilation and -especially to Windows compared to autotools ones and "`openjpeg.SlackBuild`" -has more kludges but they can't be easily avoided for cmake-based systems. - -You will probably have to add package-specific bits. This is why having -references in the form of native linux build scripts can help a lot. - -== Download the sources == -You will have to download the sources in the same directory as your build -script. - -Also note that the extension of the sources can matter: slackbuilds -unfortunately tend to assume one such as in the following snippet (assumes -`".bz2"`) and you'll need to ensure the build script matches the tarball -extension. - ------------------------------------------------------------------------- -rm -rf $PKGNAM-$VERSION -tar xvf $CWD/$PKGNAM-$VERSION.tar.bz2 || exit 1 -cd $PKGNAM-$VERSION ------------------------------------------------------------------------- - -== Add your package to the list == -Before building you need to let the builer know about your package. In the -'win-builds' git repository, edit "`build/windows.ml`". You need to add an -entry after all the package dependencies. The list is written in OCaml but -you only need to understand the basic syntax. - -For instance, `libgcrypt` depends on `libgpg-error` and needs to be added -below it so that it can reference it. ------------------------------------------------------------------------- -(* defines a new variable: libgcrypt - * it is the result of a call to the "add" function with 6 arguments: - * - ("libgcrypt", None): the package name is "libgcrypt" and there no - * so-called "variant" for it - * - ~dir: the directory containing the package; the full path will be - * "slackware64-current/n/libgcrypt" - * - ~dependencies: the list of dependencies, separated by ';' and enclosed - * between '[' and ']'. - * - ~version: the package version as a string - * - ~build: the package build number, as an integer - * - ~sources: the list of sources which are not tracked in git (i.e. large - * binaries); each entry is made of the filename followed by the SHA1 of the - * file; the filename can contain ${PACKAGE} and ${VERSION} to not repeat - * the values given as ~version and in the first argument to the "add" - * function. -*) -let libgcrypt = add ("libgcrypt", None) - ~dir:"slackware64-current/n" - ~dependencies:[ libgpg_error ] - ~version:"1.6.1" - ~build:1 - ~sources:[ - "${PACKAGE}-${VERSION}.tar.bz2", "d9b63ac3b17a6972fc11150d136925b702f02"; - ] -in ------------------------------------------------------------------------- - -Note the trailing "`in`": the OCaml construct is "`let ... in`" and the syntax -requires that "`in`" after each new variable creation. - -== Test your package == -You can now build your package like any other package, i.e. with a command -similar to: - ------------------------------------------------------------------------- -make -C win-builds WINDOWS=your_package ------------------------------------------------------------------------- - -This will build your package for windows for both 32b and 64b. The logs will -be stored inside "`@@VERSION@@/logs/windows_??/your_package`". - -You will most likely have to build, check the logs and change your build -script several times. - -Remember you can build for only one architecture at once. This will save CPU -time and allow iterating faster. The syntax is: - ------------------------------------------------------------------------- -make -C win-builds WINDOWS_64=your_package ------------------------------------------------------------------------- - -=== devshell feature === - -While developing you might want to have a shell. To do so, simply append -"`:devshell`" to your target: - ------------------------------------------------------------------------- -make -C win-builds WINDOWS_64=your_package:devshell ------------------------------------------------------------------------- - -It will give you a shell configured just like the shell used to run the -SlackBuild except that it will try to use your own shell and not necessarily -bash. You can then play the build script by hand to see what is going wrong. |