From 46d1ef68bda5bbd19baec078f3156a7b2132243e Mon Sep 17 00:00:00 2001 From: David Anderson Date: Sun, 26 Aug 2018 11:28:25 -0700 Subject: [PATCH] Build assembly files with AMBuild. (#481) * Remove prebuilt nasm-generated object files from the tree, and use AMBuild to compile them. * Add commands in VS project to build the object files * Rename elf to elf32 for consistency --- .gitignore | 2 ++ .travis.yml | 3 +- AMBuildScript | 57 ++++++++++++++++++++++++++++++ amxmodx/AMBuilder | 29 +++++---------- amxmodx/JIT/amxexecn-darwin.o | Bin 12049 -> 0 bytes amxmodx/JIT/amxexecn.o | Bin 13024 -> 0 bytes amxmodx/JIT/amxexecn.obj | Bin 12627 -> 0 bytes amxmodx/JIT/amxjitsn-darwin.o | Bin 24220 -> 0 bytes amxmodx/JIT/amxjitsn.o | Bin 25968 -> 0 bytes amxmodx/JIT/amxjitsn.obj | Bin 26250 -> 0 bytes amxmodx/JIT/helpers-darwin-x86.o | Bin 365 -> 0 bytes amxmodx/JIT/helpers-x86.o | Bin 592 -> 0 bytes amxmodx/JIT/helpers-x86.obj | Bin 381 -> 0 bytes amxmodx/JIT/natives-amd64.o | Bin 2304 -> 0 bytes amxmodx/JIT/natives-darwin-x86.o | Bin 708 -> 0 bytes amxmodx/JIT/natives-x86.o | Bin 1040 -> 0 bytes amxmodx/JIT/natives-x86.obj | Bin 788 -> 0 bytes amxmodx/msvc12/amxmodx_mm.vcxproj | 18 +++++++++- appveyor.yml | 9 +++-- configure.py | 2 ++ support/checkout-deps.sh | 39 +++++++++++++++----- 21 files changed, 127 insertions(+), 32 deletions(-) delete mode 100644 amxmodx/JIT/amxexecn-darwin.o delete mode 100755 amxmodx/JIT/amxexecn.o delete mode 100755 amxmodx/JIT/amxexecn.obj delete mode 100644 amxmodx/JIT/amxjitsn-darwin.o delete mode 100755 amxmodx/JIT/amxjitsn.o delete mode 100755 amxmodx/JIT/amxjitsn.obj delete mode 100644 amxmodx/JIT/helpers-darwin-x86.o delete mode 100644 amxmodx/JIT/helpers-x86.o delete mode 100644 amxmodx/JIT/helpers-x86.obj delete mode 100755 amxmodx/JIT/natives-amd64.o delete mode 100644 amxmodx/JIT/natives-darwin-x86.o delete mode 100755 amxmodx/JIT/natives-x86.o delete mode 100755 amxmodx/JIT/natives-x86.obj diff --git a/.gitignore b/.gitignore index 75af3bbf..8692a2f5 100644 --- a/.gitignore +++ b/.gitignore @@ -84,3 +84,5 @@ Thumbs.db # AMXX plugin build related files plugins/compile.dat plugins/compiled/ + +build_deps/ diff --git a/.travis.yml b/.travis.yml index 0237f218..5dfce31c 100644 --- a/.travis.yml +++ b/.travis.yml @@ -8,6 +8,7 @@ addons: - linux-libc-dev - gcc-multilib - g++-multilib + - nasm sources: - llvm-toolchain-precise-3.7 - ubuntu-toolchain-r-test @@ -23,4 +24,4 @@ script: - mkdir build && cd build - PATH="~/.local/bin:$PATH" - CC=clang-3.7 CXX=clang-3.7 python ../configure.py --enable-optimize - - ambuild \ No newline at end of file + - ambuild diff --git a/AMBuildScript b/AMBuildScript index 7c4388bf..12f361ed 100644 --- a/AMBuildScript +++ b/AMBuildScript @@ -20,6 +20,7 @@ class AMXXConfig(object): self.utf8rewind = None self.csx_app = None self.stdcxx_path = None + self.nasm_path = None def use_auto_versioning(self): if builder.backend != 'amb2': @@ -105,6 +106,31 @@ class AMXXConfig(object): if not self.mysql_path: raise Exception('Could not find MySQL! Try passing --mysql to configure.py.') + def detectNASM(self): + import subprocess + + nasm_paths = [ + getattr(builder.options, 'nasm_path', 'nasm'), + ] + if builder.target_platform == 'windows': + nasm_paths += [os.path.join( + builder.sourcePath, + 'build_deps', + 'nasm', + 'nasm.exe') + ] + + for nasm_path in nasm_paths: + try: + subprocess.check_output([nasm_path, '-v']) + self.nasm_path = nasm_path + break + except: + pass + + if self.nasm_path is None: + raise Exception('Could not find a suitable path for nasm') + # Returns list of lines of output from the compiler @staticmethod def invokeCompiler(args): @@ -369,11 +395,42 @@ class AMXXConfig(object): binary = context.compiler.Program(name) return self.AddVersioning(binary) + def AddAssembly(self, context, binary, input_file, output_file, includes=[], extra_argv=[]): + if builder.target_platform == 'windows': + obj_type = 'win32' + elif builder.target_platform == 'linux': + obj_type = 'elf32' + elif builder.target_platform == 'mac': + obj_type = 'macho32' + + input_path = os.path.join(context.currentSourcePath, input_file) + output_path = output_file + + argv = [ + self.nasm_path, + '-I{0}{1}'.format(context.currentSourcePath, os.sep), + input_path, + '-f', obj_type, + '-o', output_path, + ] + extra_argv + + extra_includes = [] + for include_file in includes: + extra_includes.append(os.path.join(context.currentSourcePath, include_file)) + + cmd_node, output_nodes = context.AddCommand( + inputs = [input_path] + extra_includes, + argv = argv, + outputs = [output_path]) + + binary.compiler.linkflags += [output_nodes[0]] + AMXX = AMXXConfig() AMXX.detectProductVersion() AMXX.detectMetamod() AMXX.detectHlsdk() AMXX.detectMysql() +AMXX.detectNASM() AMXX.configure() if AMXX.use_auto_versioning(): diff --git a/amxmodx/AMBuilder b/amxmodx/AMBuilder index 92da4709..815271f7 100644 --- a/amxmodx/AMBuilder +++ b/amxmodx/AMBuilder @@ -9,36 +9,25 @@ binary.compiler.defines += [ 'HAVE_STDINT_H', ] +AMXX.AddAssembly(builder, binary, 'helpers-x86.asm', 'helpers-asm.obj') +AMXX.AddAssembly(builder, binary, 'natives-x86.asm', 'natives-asm.obj') +AMXX.AddAssembly(builder, binary, 'amxexecn.asm', 'amxexecn-asm.obj', + includes=['amxdefn.asm']) +AMXX.AddAssembly(builder, binary, 'amxjitsn.asm', 'amxjitsn-asm.obj', + includes=['amxdefn.asm'], + # Opcode sizes must be maximum width for patching to work. + extra_argv=['-O0']) + if builder.target_platform == 'mac': - jit_objects = [ - binary.Dep('JIT/amxexecn-darwin.o'), - binary.Dep('JIT/amxjitsn-darwin.o'), - binary.Dep('JIT/natives-darwin-x86.o'), - binary.Dep('JIT/helpers-darwin-x86.o'), - ] binary.compiler.postlink += [ '-Wl,-read_only_relocs,suppress' ] -elif builder.target_platform == 'linux': - jit_objects = [ - binary.Dep('JIT/amxexecn.o'), - binary.Dep('JIT/amxjitsn.o'), - binary.Dep('JIT/natives-x86.o'), - binary.Dep('JIT/helpers-x86.o'), - ] elif builder.target_platform == 'windows': - jit_objects = [ - binary.Dep('JIT/amxexecn.obj'), - binary.Dep('JIT/amxjitsn.obj'), - binary.Dep('JIT/helpers-x86.obj'), - binary.Dep('JIT/natives-x86.obj'), - ] binary.compiler.linkflags += [ '/EXPORT:GiveFnptrsToDll=_GiveFnptrsToDll@8,@1', '/SECTION:.data,RW', ] -binary.compiler.linkflags += jit_objects binary.compiler.linkflags += [AMXX.zlib.binary, AMXX.hashing.binary, AMXX.utf8rewind.binary] binary.sources = [ diff --git a/amxmodx/JIT/amxexecn-darwin.o b/amxmodx/JIT/amxexecn-darwin.o deleted file mode 100644 index b215a7fb52d9f2093e7218025ab3913119209e07..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12049 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 diff --git a/amxmodx/JIT/amxexecn.o b/amxmodx/JIT/amxexecn.o deleted file mode 100755 index a4970395797555b7be365e6e5171525f0d356c57..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 13024 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 GJOThU?TFm~ diff --git a/amxmodx/JIT/amxexecn.obj b/amxmodx/JIT/amxexecn.obj deleted file mode 100755 index ba9b1d777cc47509a934da837196dd927556f0dd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12627 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

a6y@h zAvG^0J~=-nl_5Dlw;(eo70OG@tpJT5K)Z^0rMV0_`6)^9iFqjuWvNA(X_fJbDMiqL zMQ~Fp7?Lxx<8u>>(lhfQQHtP$q7Ez#@h7MPVaUoXfu#Z{GY>2V3U)99TyBA+KtT%@ l0hd)E5okbyn2@{(mWD9nQ^1_0qSVA}Fbi5fxca#;001v%c~1ZU diff --git a/amxmodx/JIT/amxjitsn.o b/amxmodx/JIT/amxjitsn.o deleted file mode 100755 index 2a4375ed8d690a249554b03274f6065f4ed58067..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 25968 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 SApyO##LOHFWqPT3DGUJRIzk@+ diff --git a/amxmodx/JIT/helpers-x86.o b/amxmodx/JIT/helpers-x86.o deleted file mode 100644 index 1d7e9590dfd2a57fb6712cff0ae3340c9fdf2561..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 592 zcmb<-^>JflWMqH=Mh0dE1doBi0V-hvrZpH?8JNHF~|%MQ;>lH#U%}l3=9Pf3=Av`3=FJL8f2y85m+g z20$^)JSdkTwDW234iJZbQS%SR8tok*1^kOt8`v2b4!&S-{=r%z-u#25MCjlv{^m!F z&A%8**uiREGZ`L;jy=qvSCU#$!k|~2QCw0~l9I+!#I!^i(H zHi!nrj1dC^gEfc)#*7Re3=9mmU^a+gWB`Q=hy}s|42&pY2jVkiq~;W)78UDOSeWT0 o7Uwb~=2le1I~SA&mlhP{7nLx?6B5u%OU%r{P^OofmjbdA08ac(C;$Ke diff --git a/amxmodx/JIT/helpers-x86.obj b/amxmodx/JIT/helpers-x86.obj deleted file mode 100644 index d9268b7f526d8d3a53c2d1682129c26f5fef3af6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 381 zcmeZaWMtTKQre}Pfq{XO0Rr?&QY%UzOfc!sz`$U`z`y`f0~TOlU{GKPNC@qG8oUD} zz`w|rk%57s#$pGE;$NiNz|O#M@CCaqD+2>ViIOb~h>|||iofv@NI~N-kfstYu!oGpq=IA^7#RNjXJANY%t*~CNG&SXt*|iDODxW1U|>LY8ptSSMv&v6 znxK?kVp4H_PAS+2|Nk>EFoVTGZU8Yrx6G`O^&Ait=DA)b(cURq*i4u&$l)Vvf10JykGb^rhX diff --git a/amxmodx/JIT/natives-amd64.o b/amxmodx/JIT/natives-amd64.o deleted file mode 100755 index ed6413e26146c1eb0d6a46f8dba100a2c12307f0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2304 zcmb<-^>JfjWMqH=Mg}_u1P><4z|g>kU^{@B4h&ojj0_%~wjkc&uyBukAO;9~>{J3# z3=9l^J}-%n@Mt{F!@$7c(aG-7c$^Ew>ShJWdvvlN4)y4K>e2bhqw}A~{)#XYArSW1 z2_ixG|HatD9y?%$9cBjUVqjokVqjq40Ga+D0zjsNq(JTl$=QQA3=9nBP#PqLtR5;1 z^`|03Gy?;eodT5*W?*1YfwDoA3xgPl0*j%Fi-W~MgbRZr*bE3;3G7A)TZIAUZWjhs z240XL0|SE#gBk-&w+n+hg9Kb$lR*m3)?$!`vvn9`;A~w6WjI@(K@H9}V9kPG@jfgLJqsxG`{p7+`S^22nWMlR+NN_GVCI zU|?{=u-6Bw0_68lq_7Hun+Xel5vWQ~S^>o!l*^z1Wq`y%7|La^fHFX0u(SXYdIKUD z7#Kj}d{8!sN&zJls5s1@An_?k;+!A>7|u&9$t+7P)=kV!F*DIiEY4*}%&n-1cd5)v z^vugFv2rs+2>2#ur=keBmF6Xb1mfX(Kq9VrDIh@x2ECHhiV_CBl*E!m2EC%xoJ6QV zaYSMPRw&%3KJY0Tp2&;7$gF6F|;Jbu*GA$O{NbkZX}7(YVg} zDXGPoRjCN|a1p({_~LvtoxvrEMJ0O4i8(n~C35r2Qqd$_^HR`6z-BPG`}jLK`oz0C zhPc9_2^$THQWl1f|FOw2Gq7L?zXgjR6?R}g1H(-)&B6dHTfkff28QEc1`9(Xm_`um zz)ThfPcV%jrh=I)48dR;m0)JTw6`CugoPmoOd|+T86|+l{h+*uP27NifdM2ADhCm! zFfiER5ch?Oqx%Eth@(FgD`r`L+V%tjCdD7vj|k5K&?WN zSp(&HKxvS7KXEimQ>8ZFa=uhPk@>Oav#X8=+L^w1_lOZ1_lO31_lNu1_p*33=ja~AAm41$YcfvhA#{Z3?Le$AA~`AK?>vJ zOHwOJKr9H3j}LK;2!XI+WIR+qh#$cSv7dnj#Dn1Y_>{zwLcxjhB$&)5Dd}} zQXUL)Bt!^<1i43ofq|ibk%55+B+JCWaD;(@A++;pw=2hDkP$mT+G7ugc0LUc>#pV4 zXU)LCuv3bGf#J{RCEc|g&Bs}~U3og$mbR`CrNr@Lv>UNb?aMun{{z z8e?V` diff --git a/amxmodx/JIT/natives-x86.o b/amxmodx/JIT/natives-x86.o deleted file mode 100755 index b8f58393cb700a956067ffb864952febbaa976fe..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1040 zcmb<-^>JflWMqH=Mh0dE1doBi0V-hvrZpJY8JNK=QVEcmAj}5Un83)u5D#U8C;wqLRcU2EF3S zTnG*27p3MvRHEv};DOu>6J%ld_#egw(Wof}6dz0s84L^zAdi9MK`~jwz`$S!;ecay zA_D_MC=&k!oDE_yF$jVvC>CH~WB|nrl*<6(>oG7e2tfrvd>b^rHWI>QV*Sr*ji=6XQQj0UIkS&G_x%>D#Ir_xA gJBGMILkmKI^A|G%gES~Mm>3v*Kr}3~F)%Oy09r1PT>t<8 diff --git a/amxmodx/JIT/natives-x86.obj b/amxmodx/JIT/natives-x86.obj deleted file mode 100755 index 60855c6ab7206c8235be58de78974fbd33623d17..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 788 zcmeZaWMbI*TOjZ$0|SEy0|e-mq*jzbm|!xVfq@}~fq~&Ln8(1t%)r2)zz~q2my%eL z2o(cSEDQ_`4;dI3KxTpXAnd?ka3HkvX}2rKVi0!+BLf3N?BUSPr{Q7UwH*7b85kIL zN-;1n{Q113yOyK*I7_!HPbYg^JVN1)iZBzQ|D`|u5W z1_qGTYz)#23=B*R3=C`xK5#LR2EDY*oKz5lfq~)Qe+Gth#=OLm%(B#C-3kjcy~N^N z1_lOXPlFuE%n0%}$g5C|AT>xH2HC^R2(lL;4`S&hCKc!Bl!C+W|9?neLEHzD1(^)e z$-p24;xaHWAVd@yAfgBneGCyh1_lODm?6}Fe2OX(jid(R{(J@o29QpWE{I4A0|P@S z)OLu-G$av-3s+!>?1s7-B+ty?kd~TQqGwfalse .data,RW + + cd .. +md -p JIT 2>NUL +%NASM_PATH%nasm.exe -f win32 helpers-x86.asm -o JIT/helpers-x86.obj +%NASM_PATH%nasm.exe -f win32 natives-x86.asm -o JIT/natives-x86.obj +%NASM_PATH%nasm.exe -f win32 amxexecn.asm -o JIT/amxexecn.obj +%NASM_PATH%nasm.exe -O0 -f win32 amxjitsn.asm -o JIT/amxjitsn.obj + @@ -148,6 +156,14 @@ false .data,RW + + cd .. +md -p JIT 2>NUL +%NASM_PATH%nasm.exe -f win32 helpers-x86.asm -o JIT/helpers-x86.obj +%NASM_PATH%nasm.exe -f win32 natives-x86.asm -o JIT/natives-x86.obj +%NASM_PATH%nasm.exe -f win32 amxexecn.asm -o JIT/amxexecn.obj +%NASM_PATH%nasm.exe -O0 -f win32 amxjitsn.asm -o JIT/amxjitsn.obj + @@ -474,4 +490,4 @@ - + \ No newline at end of file diff --git a/appveyor.yml b/appveyor.yml index 6fa4a461..71556206 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -3,6 +3,11 @@ clone_folder: c:\projects\amxmodx install: - git submodule update --init --recursive - 'c:' +- mkdir c:\nasm +- set PATH=c:\nasm\nasm-2.13.03;%PATH% +- curl -o "c:\nasm\nasm.zip" http://www.nasm.us/pub/nasm/releasebuilds/2.13.03/win32/nasm-2.13.03-win32.zip +- chdir c:\nasm +- 7z x nasm.zip - chdir c:\projects - git clone https://github.com/alliedmodders/ambuild - git clone https://github.com/alliedmodders/metamod-hl1 @@ -22,5 +27,5 @@ build_script: - '"%VS120COMNTOOLS%\vsvars32.bat"' - mkdir build - cd build -- c:\python27\python ../configure.py --enable-optimize -- c:\python27\scripts\ambuild \ No newline at end of file +- c:\python27\python ../configure.py --enable-optimize --nasm="C:\nasm\nasm-2.13.03\nasm.exe" +- c:\python27\scripts\ambuild diff --git a/configure.py b/configure.py index 6c8ab69d..567b09fd 100644 --- a/configure.py +++ b/configure.py @@ -30,4 +30,6 @@ run.options.add_option('--mysql', type='string', dest='mysql_path', default='', help='Path to MySQL') run.options.add_option('--disable-auto-versioning', action='store_true', dest='disable_auto_versioning', default=False, help='Disable the auto versioning script') +run.options.add_option('--nasm', type='string', dest='nasm_path', + default='nasm', help='Path to NASM') run.Configure() diff --git a/support/checkout-deps.sh b/support/checkout-deps.sh index 0153595f..df15be39 100755 --- a/support/checkout-deps.sh +++ b/support/checkout-deps.sh @@ -5,6 +5,22 @@ if [ ! -d "amxmodx" ]; then git clone --recursive https://github.com/alliedmodders/amxmodx.git fi +if [ ! -d "amxmodx/build_deps" ]; then + mkdir amxmodx/build_deps +fi + +download_archive () +{ + if [ `command -v wget` ]; then + wget "$url" -O "$dest" + elif [ `command -v curl` ]; then + curl -o $dest $url + else + echo "Failed to locate wget or curl. Please install one of these programs." + exit 1 + fi +} + if [ "$1" != "--no-mysql" ]; then ismac=0 iswin=0 @@ -34,14 +50,9 @@ if [ "$1" != "--no-mysql" ]; then fi if [ ! -d "mysql-5.5" ]; then - if [ `command -v wget` ]; then - wget $mysqlurl -O mysql.$archive_ext - elif [ `command -v curl` ]; then - curl -o mysql.$archive_ext $mysqlurl - else - echo "Failed to locate wget or curl. Install one of these programs to download MySQL." - exit 1 - fi + url=$mysqlurl + dest=mysql.$archive_ext + download_archive $decomp mysql.$archive_ext mv $mysqlver mysql-5.5 rm mysql.$archive_ext @@ -95,3 +106,15 @@ if [ $? -eq 1 ]; then python setup.py install --user fi fi + +if [ $iswin -eq 1 ]; then + if [ ! -d "amxmodx/build_deps/nasm-2.13.03" ]; then + url=http://www.nasm.us/pub/nasm/releasebuilds/2.13.03/win32/nasm-2.13.03-win32.zip + dest=amxmodx/build_deps/nasm-2.13.03-win32.zip + download_archive + cd amxmodx/build_deps + unzip nasm-2.13.03-win32.zip + rm nasm-2.13.03-win32.zip + mv nasm-2.13.03 nasm + fi +fi