#!/bin/bash . /usr/share/slax/slaxbuildlib # # This is a template build script for Slax. # Read all the comments in order to understand how to use it. # Basically you fill in some necessary data and you run it. # # If it produces Slax module properly, you may upload it # to Slax server by using command: # # $ slax buildscript upload [ filename ] # # (where filename is path to the build script you're uploading) # The actual filename doesn't matter, your Slax bundle will be # called according to SLAX_BUNDLE_NAME # # --------------------------------------------------------------- # First of all, we're going to describe the package we're building. # These variables are read by Slax server in order to collect some # important metadata about your bundle. # --------------------------------------------------------------- # Specify name of this bundle. For example, if you're building # thunderbird, use "thunderbird" as bundle name. It has to be # unique name. It is recommended that you first check if the same # name is not already used, by $ slax buildscript download NAME. # If a buildscript downloads then it's already taken and you have # to either contact the author with your request for improvements, # or rename your bundle to something else. # Use english name only. Allowed characters are: a-z A-Z 0-9 - # Space is not allowed. Do not include version number in the name. # SLAX_BUNDLE_NAME="crack-attack" # Specify version of the module. It is recommended to # specify the same version as the software you're building, # for example if you're building firefox 17.0, put there "17.0" # SLAX_BUNDLE_VERSION="1.1.10" # Optional (but recommended) description. 65536 characters maximum. # First line of text is listed at slax website. Feel free to write # multiple lines. # SLAX_BUNDLE_DESCRIPTION="Crack Attack is roughly based on the Super Nintendo game Tetris Attack. Slowly, your stack of colored blocks grows from the bottom, and you've got to make sure it never reaches the top. If it does, you lose. To eliminate blocks from the stack, line up at least three of one color, horizontally or vertically. Once you do, those blocks disappear, and put off slightly your inevitable demise." # Category tags # Specify which categories the bundle you're building belongs. # You can specify more than one. Separate by space or comma. # Possible values are: # artwork, games, network, develop, console, graphics, # editors, security, drivers, libraries, education # multimedia, system, multilang, utilities # SLAX_BUNDLE_CATEGORIES="games" # Specify unique names of existing Slax bundles which must be # activated a priori in order for your bundle to work in Slax. # Separate by space or comma. For example, if you're building # xbmc, you may need to use "libmpeg2,libass" # SLAX_BUNDLES_REQUIRED="" # If you're going to compile from sources, and the compilation # requires some software, specify it here. Separate names by # space or comma. The software you're building must run # without these dependencies. If it doesn't list your deps # in the previous SLAX_BUNDLE_REQUIRES setting. For example, # some software may need perl or cmake, so use "perl,cmake" # in that case. # SLAX_BUNDLES_REQUIRED_TO_COMPILE_ONLY="" # Tell us who you are, so others can contact you in case of # suggestions or questions. Please use valid values. # SLAX_BUNDLE_MAINTAINER_NAME="Tomas M" SLAX_BUNDLE_MAINTAINER_EMAIL="tomas@slax.org" # All source packages which need to be downloaded, or basically # anything you need to download in order to produce your bundle. # Specify direct URL links to download. You can add just one URL # and leave the other empty or you can even add more than three, # just remember to increase the index in brackets like [4], [5]... # All protocols supported by wget are possible, eg http, ftp. # SLAX_BUNDLE_SOURCE_DOWNLOAD[0]="http://aluminumangel.org/attack/crack-attack-1.1.10.tar.gz" SLAX_BUNDLE_SOURCE_DOWNLOAD[1]="" SLAX_BUNDLE_SOURCE_DOWNLOAD[2]="" # -------------------------------------------------------------------- # -------------------------------------------------------------------- # We're now all set. Next command automatically performs sanity checks # and reports all possible problems before build procedure starts. # No need to change anything here, just let it run. # check_variables_for_errors # The following command downloads automatically all sources # from the URLs mentioned above and stores them in current directory # under the same name as like specified in the URLs. If any download # fails, the whole build script stops. # No need to change anything here, just let it run. # download_all_sources # We assume that all downloads were compressed tar archives # The next command will attempt to extract them to current directory. # If the extraction fails for any given source, the failure is # silently ignored since the downloaded file may not be compressed # archive at all, e.g. it may be just a graphical image or icon # or diff/patch or whatever. # No need to change anything here, just let it run. # extract_all_sources # This step creates empty directory somewhere in /tmp and stores # the path to it in $SLAX_BUNDLE_TARGET for you. You can think # of it as a virtual root filesystem for your bundle data. # This is actually essential and must be here. # init_bundle_target_dir # Before the processing starts, the build script will automatically # download and activate all Slax Bundles mentioned in the appropriate # variables above. If the deps are already activated, it will skip # them silently, no need to download again. # activate_required_bundles # Now it's up to you. Your buildscript must prepare the software # (for example compile it etc) and install or copy the result # to destination directory $SLAX_BUNDLE_TARGET # There are several variables prepared for you so you can use # them during configure. # # Those are: # # ${SLAX_ARCH} # ... architecture of currently running Slax, e.g. "i486" # # ${SLAX_CFLAGS} # ... compiler flags needed for current architecture # for example "-Os -march=i486 -mtune=i686" # # ${SLAX_BUNDLE_TARGET} # ... as already explained this is the target directory tree # where to install all files # # ${SLAX_LIBDIR} # ... library dir e.g. "/usr/lib64" # # ${SLAX_64_FLAG} # ... if the current architecture is 64bit, this variable # contains just string '64' else it is empty # # ${SLAX_CURRENT_BUILDSCRIPT_DIR} # ... absolute path to current working directory, e.g. if you need # to copy something from there to the target directory # # ${SLAX_CONFIGURE_OPTIONS} # ... default value to pass to configure script. For example it # will be: --prefix=/usr --libdir=${SLAX_LIBDIR} --build=${SLAX_ARCH}-slackware-linux # ----------------- put your actual build code here: --------------- cd ${SLAX_BUNDLE_NAME}-${SLAX_BUNDLE_VERSION} # compile fixes sed -i '221,224d' src/Game.h sed -i -r "s/Score:://" src/Score.h sed -i -r "s/ScoreRecordManager:://" src/ScoreRecordManager.h echo '#include ' > aaa echo '#include ' >> aaa cat src/TextureLoader.h >> aaa mv aaa src/TextureLoader.h CFLAGS="${SLAX_CFLAGS}" CXXFLAGS="${SLAX_CFLAGS}" ./configure ${SLAX_CONFIGURE_OPTIONS} make -j 8 || make || exit 1 make install DESTDIR="${SLAX_BUNDLE_TARGET}" mkdir -p "${SLAX_BUNDLE_TARGET}/usr/share/"{applications,pixmaps} echo "[Desktop Entry] Type=Application Version=1.0 Encoding=UTF-8 Name=Crack Attack GenericName=Tetris Attack clone Icon=code-block Exec=crack-attack --solo Categories=Application;Game" > "${SLAX_BUNDLE_TARGET}/usr/share/applications/crack-attack.desktop" cp doc/logo_icon.xpm ${SLAX_BUNDLE_TARGET}/usr/share/pixmaps # ----------------- that makes the package install ------------------ # All binaries in the target directory are stripped # with the following command. It is generally a good idea # since it makes them smaller, but removes debug information # from the binaries. If you insist on having debug infos # (which is very unusual), you may comment out the following line # strip_unneeded_objects # Since we have everything now installed in ${SLAX_BUNDLE_TARGET}, # we can finally make the bundle. The following command packs all # files and directories from SLAX_BUNDLE_TARGET to Slax bundle. # It is essentially the last command in this build script. # Bundle file will be saved in current directory as NAME.sb # where NAME is actually the value of SLAX_BUNDLE_NAME. # create_slax_bundle # cleanup is not performed. You have to remove everything from # the current working directory manually