All Projects → KoffeinFlummi → Armake

KoffeinFlummi / Armake

Licence: gpl-2.0
A C implementation of Arma modding tools (PAA conversion, binarization/rapification, PBO packing). (WIP)

Programming Languages

c
50402 projects - #5 most used programming language

Labels

Projects that are alternatives of or similar to Armake

extDB2
Arma3 Extension DB C++ dll / so by @Torndeco. [superseded by extDB3]
Stars: ✭ 17 (-79.27%)
Mutual labels:  arma3
3den-Enhanced
Official 3den Enhanced repository
Stars: ✭ 36 (-56.1%)
Mutual labels:  arma3
Hemtt
Build System for Arma 3
Stars: ✭ 43 (-47.56%)
Mutual labels:  arma3
grad-persistence
Save/Load mission progress in server's profileNamespace
Stars: ✭ 16 (-80.49%)
Mutual labels:  arma3
ArmaScriptProfiler
Advanced 3rd Party Profiler for Arma
Stars: ✭ 34 (-58.54%)
Mutual labels:  arma3
Ace3
Open-source realism mod for Arma 3
Stars: ✭ 798 (+873.17%)
Mutual labels:  arma3
P3D-Debinarizer-Arma-3
P3DDebinarizer converts binarized p3d models (ODOL format) to editable MLOD format
Stars: ✭ 31 (-62.2%)
Mutual labels:  arma3
Vindicta
A guerrilla warfare mission for ARMA III
Stars: ✭ 73 (-10.98%)
Mutual labels:  arma3
TheseusServices
Private Military Company content mod for Arma 3
Stars: ✭ 16 (-80.49%)
Mutual labels:  arma3
Asl
Arma Scripting Language - a clean scripting language compiling to Arma 3 SQF scripts.
Stars: ✭ 20 (-75.61%)
Mutual labels:  arma3
TMF
TMF is a mission making mod for Arma 3's 3D editor
Stars: ✭ 33 (-59.76%)
Mutual labels:  arma3
Streamator
A Spectator Specifically build for Content Creation and Streaming
Stars: ✭ 18 (-78.05%)
Mutual labels:  arma3
Poppy
A reliable, self configuring, error finding loadout framework for Arma.
Stars: ✭ 6 (-92.68%)
Mutual labels:  arma3
bwmf
Bourbon Warfare Mission Framework
Stars: ✭ 16 (-80.49%)
Mutual labels:  arma3
Domination
Domination - A MP mission for Arma 3
Stars: ✭ 45 (-45.12%)
Mutual labels:  arma3
H-60
No description or website provided.
Stars: ✭ 23 (-71.95%)
Mutual labels:  arma3
Cba a3
Community Base Addons for Arma 3
Stars: ✭ 286 (+248.78%)
Mutual labels:  arma3
Acex
ACE3 Extra misc modules and components
Stars: ✭ 82 (+0%)
Mutual labels:  arma3
A3 Antistasi
A3-Antistasi is the new official Antistasi version
Stars: ✭ 71 (-13.41%)
Mutual labels:  arma3
Arma3launcherlib
Simple .NET library containing everything needed for a custom Arma 3 launcher.
Stars: ✭ 7 (-91.46%)
Mutual labels:  arma3

armake

A cross-platform, open-source C implementation of Arma modding tools (PAA conversion, binarization & rapification, PBO packing, key generation and signing). It aims to provide a complete reimplementation of the entire process, but is able to use the official BI tools on Windows for building P3Ds if it can find them, as P3D conversion is still incomplete (and most likely will never be fully complete). Terrains and RTMs are not supported at the moment (I recommend binarizing RTMs once and then using the binarized version in your repo for now).

Features

Designed for Automation

armake is designed to be used in conjunction with tools like make to build larger projects. It deliberately does not provide a mechanism for building entire projects - composed of multiple PBO files - in one call. armake itself also does not do any threading. However, it is safe to run multiple armake instances at the same time, so you can use make to run, say, 4 armake instances simultaneously with make -j4. For examples of Makefiles that use armake, check out ACE3 and ACRE2.

Decent Errors & Warnings

armake aims to provide developers with expressive and useful error messages, without trying to be smarter than them. It allows disabling most warnings and tries to only error out if a complete build is impossible or impractical.

No P-drive

To enable armake to run on non-Windows systems without hacky workarounds, and because it's a terrible idea in general, armake does not make use of the P-drive for finding include files. Instead - like with other compilers - you provide the folders to search for includes in the armake call.

Determinism

Unlike other Arma modding tools, armake includes no timestamp information in the built files. This means that - given two identical source folders - armake will produce the exact same output, bit for bit. This means that your team doesn't have to distribute a single build to make sure you're each testing the same PBOs, you can simply build it in multiple places and compare file hashes. This doesn't include cryptographic operations of course.

Note that there can be newline differences in different instances of the same git repo, depending on your settings. While they don't matter for config rapification, files with weird newlines copied into the PBO directly might ruin your PBO's hash comparison.

Speed


(Tests ran on a 2 core Windows VM using PboProject v2.24.6.43 and armake commit 54079138)

Setup

From Source

$ make
$ sudo make install

Dependencies:

  • GCC
  • OpenSSL development libraries (libssl-dev on Ubuntu)

Arch Linux

PKGBUILD or PKGBUILD (development)

$ pacaur -S armake      # or use yaourt or whatever AUR helper you use
$ pacaur -S armake-git

Ubuntu & Other Debian Derivatives

PPA

$ sudo add-apt-repository ppa:koffeinflummi/armake
$ sudo apt-get update
$ sudo apt-get install armake

Usage

armake

Usage:
    armake binarize [-f] [-w <wname>] [-i <includefolder>] <source> [<target>]
    armake build [-f] [-p] [-w <wname>] [-i <includefolder>] [-x <xlist>] [-k <privatekey>] [-s <signature>] [-e <headerextension>] <folder> <pbo>
    armake inspect <pbo>
    armake unpack [-f] [-i <includepattern>] [-x <excludepattern>] <pbo> <folder>
    armake cat <pbo> <name>
    armake derapify [-f] [-d <indentation>] [<source> [<target>]]
    armake keygen [-f] <keyname>
    armake sign [-f] [-s <signature>] <privatekey> <pbo>
    armake paa2img [-f] <source> <target>
    armake img2paa [-f] [-z] [-t <paatype>] <source> <target>
    armake (-h | --help)
    armake (-v | --version)

See armake --help for more.

Thanks

  • Mikero for his great documentation of the various file formats used.
  • T_D for great documentation, lots of pointers and even some code contributions.
  • jonpas for all kinds of help with development and testing.
  • kju for some pointers and "PR work".
  • Glowbal for the name.
  • 4d4a5852 for his work with a3lib.

Used Libraries

Disclaimer

This isn't official BI software. As such, it may not compile certain addons correctly or lag behind BI when new file format versions are introduced. As stated in the GPL, this software is provided without any warranty, so use at your own risk.



BTC 18bKjgqZ6E6sQFPNQL4SnCFNB9pLN2PJRk

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].