summaryrefslogtreecommitdiffstats
path: root/utils/xa/Makefile
blob: 6dc06c0ba4d6059d0d4b3ab71b294aaabb278174 (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
include $(TOPDIR)/rules.mk

PKG_NAME:=xa
PKG_VERSION:=2.4.1
PKG_RELEASE:=1

PKG_SOURCE:=xa-$(PKG_VERSION).tar.gz
PKG_SOURCE_URL:=https://www.floodgap.com/retrotech/xa/dists/
PKG_HASH:=63c12a6a32a8e364f34f049d8b2477f4656021418f08b8d6b462be0ed3be3ac3

PKG_MAINTAINER:=Daniel Golle <daniel@makrotopia.org>
PKG_LICENSE:=GPL-2.0-only
PKG_LICENSE_FILES:=COPYING

PKG_BUILD_PARALLEL:=1

include $(INCLUDE_DIR)/package.mk
include $(INCLUDE_DIR)/host-build.mk

define Package/xa
  SECTION:=utils
  CATEGORY:=Utilities
  TITLE:=xa65 6502/65816 cross-assembler
  URL:=https://www.floodgap.com/retrotech/xa/
endef

define Package/xa/description
  xa (xa65) is a high-speed, two-pass portable cross-assembler that
  generates code for the NMOS 6502, CMOS 6502 (65C02 and Rockwell R65C02)
  and the 65816 processors. The package also ships the companion tools
  file65, ldo65, reloc65, printcbm and uncpk.
endef

XA_BINS:=xa file65 ldo65 reloc65 printcbm uncpk

define Build/Compile
	$(MAKE) -C $(PKG_BUILD_DIR)/src \
		CC="$(TARGET_CC)" \
		LD="$(TARGET_CC)" \
		CFLAGS="$(TARGET_CFLAGS)" \
		LDFLAGS="$(TARGET_LDFLAGS)"
	$(MAKE) -C $(PKG_BUILD_DIR)/misc \
		CC="$(TARGET_CC)" \
		CFLAGS="$(TARGET_CFLAGS)"
endef

define Package/xa/install
	$(INSTALL_DIR) $(1)/usr/bin
	$(foreach bin,$(XA_BINS),$(INSTALL_BIN) $(PKG_BUILD_DIR)/$(bin) $(1)/usr/bin/;)
endef

define Host/Compile
	$(MAKE) -C $(HOST_BUILD_DIR)/src \
		CC="$(HOSTCC)" \
		LD="$(HOSTCC)" \
		CFLAGS="$(HOST_CFLAGS)"
endef

define Host/Install
	$(INSTALL_DIR) $(STAGING_DIR_HOSTPKG)/bin
	$(INSTALL_BIN) $(HOST_BUILD_DIR)/xa $(STAGING_DIR_HOSTPKG)/bin/
endef

define Host/Clean
	$(RM) $(STAGING_DIR_HOSTPKG)/bin/xa
endef

$(eval $(call HostBuild))
$(eval $(call BuildPackage,xa))