diff options
author | Alexey 'Cluster' Avdyukhin <clusterrr@clusterrr.com> | 2021-12-24 19:59:21 +0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-12-24 19:59:21 +0300 |
commit | fe5f9055b200749f7d502e554039dc709b4e1576 (patch) | |
tree | 94e1e4db5eaf5d0b648698a6cd59b889524c3ffb | |
parent | d80f61af89d4c8cb1205c9ed9696d888335d5f6d (diff) | |
parent | 0340069c8a15ce2ce2c70fa531b20b22591f55c9 (diff) |
Merge pull request #2 from andrewclarkii/master
Makefile and specfile changes
-rw-r--r-- | rpm/nesasm.spec | 12 | ||||
-rw-r--r-- | source/Makefile | 99 |
2 files changed, 56 insertions, 55 deletions
diff --git a/rpm/nesasm.spec b/rpm/nesasm.spec index 95c946f..eca97d9 100644 --- a/rpm/nesasm.spec +++ b/rpm/nesasm.spec @@ -1,6 +1,8 @@ +%global gitcommit "2b39ec6" + Name: nesasm Version: 3.6 -Release: 1%{?dist} +Release: 2%{?dist} Summary: 6502 assembler with specific NES support License: MIT @@ -19,13 +21,12 @@ by J. H. Van Ornum. %prep %setup -q - %build -make %{?_smp_mflags} CFLAGS="%{optflags}" -C source/ +make %{?_smp_mflags} EXTRA_CFLAGS="%{optflags}" COMMIT="%gitcommit" -C source/ %install -install -pD -m 755 %{name} %buildroot%_bindir/%{name} +install -pD -m 755 source/%{name} %buildroot%_bindir/%{name} %files @@ -33,5 +34,8 @@ install -pD -m 755 %{name} %buildroot%_bindir/%{name} %_bindir/* %changelog +* Fri Dec 10 2021 Andrew Clark <andrewclarkii@gmail.com> - 3.6-2 +- specfile changes + * Sat Dec 04 2021 Andrew Clark <andrewclarkii@gmail.com> - 3.6-1 - Initial version diff --git a/source/Makefile b/source/Makefile index 7fa99f2..a96ca59 100644 --- a/source/Makefile +++ b/source/Makefile @@ -1,74 +1,71 @@ -RM = rm -f -CC = gcc -COMMIT_INFO = commit.h +.POSIX: +.SUFFIXES: -CFLAGS = -O2 -Wall -Wno-restrict -Wno-unknown-warning-option -ifeq ($(OS),Windows_NT) - LDFLAGS += -largp -else - UNAME_S := $(shell uname -s) - ifeq ($(UNAME_S),Darwin) - LDFLAGS += -largp - endif -endif +CC ?= cc +RM ?= rm -f +INSTALL ?= install -p +COMMIT := +COMMIT_INFO = commit.h -OBJS = main.o input.o assemble.o expr.o code.o command.o\ - macro.o func.o proc.o symbol.o output.o crc.o\ - nes.o +EXTRA_CFLAGS ?= -O2 -Wall -Wno-restrict -Wno-unknown-warning-option +CFLAGS += ${EXTRA_CFLAGS} -I. +LDADD ?= -Wl,--as-needed -EXEDIR = .. +EXEDIR ?= .. +PREFIX ?= /usr +BINDIR ?= $(PREFIX)/bin + +PROGRAM ?= nesasm -COMMIT = $(shell git rev-parse --short HEAD) -COMMIT_DIRTY = $(shell git diff-index HEAD) -ifneq ($(COMMIT_DIRTY),) - COMMIT += (dirty) -endif ifeq ($(COMMIT),) - COMMIT = "unknown" + COMMIT = $(shell git rev-parse --short HEAD) +else + COMMIT += $(shell git diff-index HEAD) (dirty) endif ifeq ($(OS),Windows_NT) - TARGNES = $(EXEDIR)/nesasm.exe + LDFLAGS += -largp + $(PROGRAM) = $(EXEDIR)/$(PROGRAM).exe else - TARGNES = $(EXEDIR)/nesasm + UNAME_S := $(shell uname -s) + ifeq ($(UNAME_S),Darwin) + LDFLAGS += -largp + endif endif -# -# +# Object files + +OBJS = main.o input.o assemble.o expr.o code.o command.o\ + macro.o func.o proc.o symbol.o output.o crc.o\ + nes.o + +# All *.c file compiled to *.o +.SUFFIXES: .c .o +.c.o: + $(CC) $(CFLAGS) -o $@ -c $< -all: $(TARGNES) -default: $(TARGNES) +# default target +all: commit_file $(PROGRAM) -# CLEAN -# +commit_file: + @printf "#define COMMIT \"$(COMMIT)\"\\n" > $(COMMIT_INFO) clean: - $(RM) *.o + ifeq ($(OS),Windows_NT) - @if [ -f "$(TARGNES)" ]; then for f in `cygcheck "$(TARGNES)" | grep .dll | grep msys` ; do rm -f $(EXEDIR)/`basename "$$f"` ; done fi + @if [ -f "$(PROGRAM)" ]; then for f in `cygcheck "$(PROGRAM)" | grep .dll | grep msys` ; do rm -f $(EXEDIR)/`basename "$$f"` ; done fi endif - $(RM) $(TARGNES) - $(RM) $(COMMIT_INFO) -# ASSEMBLER -# + $(RM) $(OBJS) $(PROGRAM) $(COMMIT_INFO) -$(OBJS) : defs.h externs.h protos.h -main.o : inst.h vars.h $(COMMIT_INFO) -expr.o : expr.h -nes.o : nes.h -%.o : %.c - $(CC) $(CFLAGS) -o $@ -c $< - -.PHONY: $(COMMIT_INFO) -$(COMMIT_INFO): - @printf "#define COMMIT \"$(COMMIT)\"\\n" > $(COMMIT_INFO) +# Link objects into executable file -# EXE -# +$(PROGRAM): $(OBJS) + $(CC) -o $(PROGRAM) $(OBJS) $(LDFLAGS) $(LDADD) -$(TARGNES): $(OBJS) - $(CC) -o $(TARGNES) $(OBJS) $(LDFLAGS) ifeq ($(OS),Windows_NT) - @for f in `cygcheck "$(TARGNES)" | grep .dll | grep msys` ; do cp -vf `cygpath "$$f"` $(EXEDIR)/ ; done + @for f in `cygcheck "$(PROGRAM)" | grep .dll | grep msys` ; do cp -vf `cygpath "$$f"` $(EXEDIR)/ ; done endif + +.PHONY: all commit_file clean + |