ifeq ($(strip $(DEVKITPRO)),)
$(error "Please set DEVKITPRO in your environment. export DEVKITPRO=<path to>devkitPro)
endif

include $(DEVKITA64)/base_rules

PORTLIBS	:=	$(PORTLIBS_PATH)/armv8-a $(PORTLIBS_PATH)/switch

LIBNX	?=	$(DEVKITPRO)/libnx

ifeq ($(strip $(APP_TITLE)),)
APP_TITLE	:=	$(notdir $(OUTPUT))
endif

ifeq ($(strip $(APP_AUTHOR)),)
APP_AUTHOR	:=	Unspecified Author
endif

ifeq ($(strip $(APP_VERSION)),)
APP_VERSION	:=	1.0.0
endif

#---------------------------------------------------------------------------------
%.nacp: $(MAKEFILE_LIST)
	@nacptool --create "$(APP_TITLE)" "$(APP_AUTHOR)" "$(APP_VERSION)" $@ $(NACPFLAGS)
	@echo built ... $(notdir $@)

#---------------------------------------------------------------------------------
%.pfs0: %.nso
	@mkdir -p exefs
	@[ -d $(BUILD_EXEFS_SRC) ] && cp -R $(BUILD_EXEFS_SRC)/* exefs || echo > /dev/null
	@cp $< exefs/main
	@build_pfs0 exefs $@
	@echo built ... $(notdir $@)

#---------------------------------------------------------------------------------
%.nso: %.elf
	@elf2nso $< $@
	@echo built ... $(notdir $@)

#---------------------------------------------------------------------------------
%.nro: %.elf
	@elf2nro $< $@ $(NROFLAGS)
	@echo built ... $(notdir $@)
#---------------------------------------------------------------------------------
%.elf:
	@echo linking $(notdir $@)
	@$(LD) $(LDFLAGS) $(OFILES) $(LIBPATHS) $(LIBS) -o $@
	@$(NM) -CSn $@ > $(notdir $*.lst)