aboutsummaryrefslogtreecommitdiff
path: root/core/Makefile
blob: b6dc3ffece8226a9b8d6ff3ce6a23b42b8f23014 (plain) (blame)
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
# Makefile to build Debian package for Cryptech Novena PVT-1 FPGA
# bitstream.
#
# Author: Rob Austein
# Copyright (c) 2015, SUNET
#
# Redistribution and use in source and binary forms, with or
# without modification, are permitted provided that the following
# conditions are met:
#
# 1. Redistributions of source code must retain the above copyright
#    notice, this list of conditions and the following disclaimer.
#
# 2. Redistributions in binary form must reproduce the above copyright
#    notice, this list of conditions and the following disclaimer in
#    the documentation and/or other materials provided with the
#    distribution.
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
# FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
# COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
# BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
# CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
# STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

# Directory where we run Verilog synthesis

BUILD_DIR := platform/novena/eim/build

# Build scripts need to know the build host's word size, sigh.

WORD_SIZE := $(shell python -c 'from struct import pack; print len(pack("L", 0)) * 8')

# This business of patching files that are under revision control
# because we can't be bothered to generate a proper configuration file
# is kind of nasty.

all:
	patch -p1 --forward <patches/01-config-cores.patch
	touch platform/novena/common/rtl/ipcore/clkmgr_dcm.v
	cd ${BUILD_DIR}; $(MAKE) xil_env='. $$(isedir)/settings${WORD_SIZE}.sh'
	patch -p1 --reverse <patches/01-config-cores.patch

clean:
	cd ${BUILD_DIR}; $(MAKE) clean

install:
	install -D -m 644 ${BUILD_DIR}/novena_eim.bit ${DESTDIR}/usr/share/cryptech/novena_eim.bit