summarylogtreecommitdiffstats
path: root/PKGBUILD
blob: c6e2b12548ca71a87f04ec5947394498da3340e6 (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
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
# Maintainer: Aki-nyan <aur@catgirl.link>

pkgname=nextpnr-all-nightly
pkgver=20241222_nextpnr_0.7_138_gf01465f6
pkgrel=1
epoch=1
pkgdesc="nextpnr portable FPGA place and route tool - ice40, ecp5, machxo2, nexus, and generic"
arch=("x86_64")
url="https://github.com/YosysHQ/nextpnr"
license=("custom:ISC")
groups=()
options=("!strip")
depends=(
	"yosys-nightly"
	"prjtrellis-nightly"
	"icestorm-nightly"
	"prjoxide-nightly"
	"python"
	"boost-libs"
	"qt5-base"
)
optdepends=()
makedepends=("git" "gcc" "cmake" "ninja" "pkgconf" "gawk" "eigen" "boost")
conflicts=(
	"nextpnr-git"
	"nextpnr-ice40-nightly"
	"nextpnr-ecp5-nightly"
	"nextpnr-machxo2-nightly"
	"nextpnr-nexus-nightly"
	"nextpnr-generic-nightly"
)
replaces=()
provides=(
	"nextpnr-ecp5=$(cut -d _ -f 3 <<< "${pkgver}")"
	"nextpnr-generic=$(cut -d _ -f 3 <<< "${pkgver}")"
	"nextpnr-ice40=$(cut -d _ -f 3 <<< "${pkgver}")"
	"nextpnr-machxo2=$(cut -d _ -f 3 <<< "${pkgver}")"
	"nextpnr-nexus=$(cut -d _ -f 3 <<< "${pkgver}")"
)
source=(
	"nextpnr::git+https://github.com/YosysHQ/nextpnr.git#commit=f01465f6"
)
sha256sums=(
	"SKIP"
)

_PREFIX="/usr"
prepare() {
	cd "${srcdir}/nextpnr"
	[ ! -d "${srcdir}/nextpnr/build-ice40" ] && mkdir build-ice40
	[ ! -d "${srcdir}/nextpnr/build-ecp5" ] && mkdir build-ecp5
	[ ! -d "${srcdir}/nextpnr/build-machxo2" ] && mkdir build-machxo2
	[ ! -d "${srcdir}/nextpnr/build-nexus" ] && mkdir build-nexus
	[ ! -d "${srcdir}/nextpnr/build-generic" ] && mkdir build-generic
}

build() {
	cd "${srcdir}/nextpnr/build-ice40"
	cmake -G Ninja        \
		-DARCH=ice40      \
		-DBUILD_PYTHON=ON \
		-DBUILD_GUI=ON    \
		-DCMAKE_BUILD_TYPE=RelWithDebInfo \
		-DCMAKE_INSTALL_PREFIX=${_PREFIX} \
		-DUSE_OPENMP=ON	\
		..
	ninja

	cd "${srcdir}/nextpnr/build-ecp5"
	cmake -G Ninja        \
		-DARCH=ecp5       \
		-DBUILD_PYTHON=ON \
		-DBUILD_GUI=ON    \
		-DCMAKE_BUILD_TYPE=RelWithDebInfo \
		-DCMAKE_INSTALL_PREFIX=${_PREFIX} \
		-DUSE_OPENMP=ON	\
		..
	ninja

	cd "${srcdir}/nextpnr/build-machxo2"
	cmake -G Ninja        \
		-DARCH=machxo2     \
		-DBUILD_PYTHON=ON \
		-DBUILD_GUI=ON    \
		-DCMAKE_BUILD_TYPE=RelWithDebInfo \
		-DCMAKE_INSTALL_PREFIX=${_PREFIX} \
		-DUSE_OPENMP=ON	\
		..
	ninja

	cd "${srcdir}/nextpnr/build-nexus"
	cmake -G Ninja        \
		-DARCH=nexus      \
		-DBUILD_PYTHON=ON \
		-DBUILD_GUI=ON    \
		-DCMAKE_BUILD_TYPE=RelWithDebInfo \
		-DCMAKE_INSTALL_PREFIX=${_PREFIX} \
		-DUSE_OPENMP=ON	\
		..
	ninja


	cd "${srcdir}/nextpnr/build-generic"
	cmake -G Ninja        \
		-DARCH=generic    \
		-DBUILD_PYTHON=ON \
		-DBUILD_GUI=ON    \
		-DCMAKE_BUILD_TYPE=RelWithDebInfo \
		-DCMAKE_INSTALL_PREFIX=${_PREFIX} \
		-DUSE_OPENMP=ON	\
		..
	ninja

}

package() {
	cd "${srcdir}/nextpnr"

	DESTDIR="${pkgdir}" PREFIX="${_PREFIX}" ninja -C build-ice40 install
	DESTDIR="${pkgdir}" PREFIX="${_PREFIX}" ninja -C build-ecp5 install
	DESTDIR="${pkgdir}" PREFIX="${_PREFIX}" ninja -C build-machxo2 install
	DESTDIR="${pkgdir}" PREFIX="${_PREFIX}" ninja -C build-nexus install
	DESTDIR="${pkgdir}" PREFIX="${_PREFIX}" ninja -C build-generic install

	install -Dm644 "${srcdir}/nextpnr/COPYING" "${pkgdir}${_PREFIX}/share/licenses/nextpnr/COPYING"
}