summarylogtreecommitdiffstats
path: root/PKGBUILD
blob: 0a99a87830d9d1bca89e1655cc1c624e04be37c5 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
# Maintainer: Darren Ng  <$(base64 --decode <<<VW4xR2ZuQGdtYWlsLmNvbQo=)>
# Maintainer: Dan Bryant <$(base64 --decode <<<VanVzdGRhbjk2QGdtYWlsLmNvbQo=)>

# https://github.com/Terraspace/UASM
pkgname=uasm
url=http://www.terraspace.co.uk/uasm.html
# http://www.terraspace.co.uk/uasm.html#p1
pkgdesc="Continued evolution of JWasm"

pkgver=2.52
pkgrel=1

arch=($CARCH)
license=(
  'custom:JWasm License'
  'custom:Sybase Open Watcom Public License'
)

depends=('sh')
makedepends=('git')
# checkdepends=()
# optdepends=()
# provides=()
# conflicts=()
# replaces=()
# backup=()
# options=(!strip debug)

source=(
  # https://man.archlinux.org/man/PKGBUILD.5#USING_VCS_SOURCES
  $pkgname.git::git+https://github.com/Terraspace/UASM.git#branch=v$pkgver
  uasm-nocolor
  dbgcv.patch
)

sha1sums=('SKIP'
          '49f6a6ca16eba01fafce563e0f14cd145b512ff6'
          'f41bb76a34bde4a30ec8f17eda857e6d0951d070')

prepare() {

  cd "$srcdir/$pkgname.git"

  local HEAD_SHA1
  case "$pkgver" in
  2.50) HEAD_SHA1=16a853bd6de807fe2c42569f8375a029684c0f22;;
  2.51) HEAD_SHA1=c853dbdbd1d1a7a8f23eafec658e7e70f8e7a3c4;;
  2.52) HEAD_SHA1=c612f83d97a0cb192dfd983676743dabf662ed51;;
  2.53) HEAD_SHA1=8f8feb76a3fec91c5038bb09dfc304df804f5e16;;
      *) return 1;;
  esac
  [ "$(git rev-parse HEAD)" = "$HEAD_SHA1" ]
  
  # Since v2.51
  # dbgcv.c:*:*: fatal error: direct.h: No such file or directory
  #    * | #include <direct.h>  
  patch --input="${srcdir}/dbgcv.patch"
  
  # To fix #151
  sed -i 's!#ifndef _TYPES_H_INCLUDED!#ifndef _TYPES_H_INCLUDED_!g' ./H/types.h
  
  # Enforce full RELRO
  sed -i 's!-Wl,-Map,$(OUTD)/$(TARGET1).map$!-Wl,-Map,$(OUTD)/$(TARGET1).map -Wl,-z,now!g' gccLinux64.mak
  
  # https://gcc.gnu.org/gcc-10/porting_to.html#common
  sed -i "s!CC = gcc!CC = gcc -fcommon!g" gccLinux64.mak
}

build() {
  cd "$srcdir/$pkgname.git"
  make -f gccLinux64.mak -j$(nproc)
}

# make: *** No rule to make target 'check'.
# check() {
#   make -k check
# }

package() {

  cd "$srcdir/$pkgname.git"

  install -v -Dm755 {GccUnixR,"$pkgdir/usr/bin"}/uasm
  # install -v -Dm755 GccUnixR/uasm "$pkgdir/usr/bin/uasm-color"
  # cp -L "$srcdir/${source[1]}" "$pkgdir/usr/bin/uasm"
  # chmod -v +x "$_"

  install -v -Dm755 {"$srcdir","$pkgdir/usr/bin/"}/uasm-nocolor

  install -v -dDm755 "$pkgdir/usr/share/doc/uasm"
  install -v -m644 Readme.txt History.txt Doc/* "$_/"

  install -v -Dm644 {,"$pkgdir/usr/share/licenses/$pkgname/"}License.txt

}