/Makefile (fa7b62afe0fc9f7a809fa6fa7616972057cc3d3a) (1600 bytes) (mode 100644) (type blob)
CFLAGS = -w -O3 -flto
VERSION := $(shell git rev-parse --short HEAD)
# when testing and releasing, we can't run both in parallel
# but we also don't want to test when we're just making the zip
# so this rule depends on test just when we're both releasing and testing
ifneq (,$(findstring release,$(MAKECMDGOALS)))
ifneq (,$(findstring test,$(MAKECMDGOALS)))
pjass-git-$(VERSION).zip: | test
endif
endif
.PHONY: all release clean debug
all: pjass
debug: CFLAGS = -w -g
debug: pjass
pjass: lex.yy.o grammar.tab.o misc.o
$(CC) $(CFLAGS) $^ -o $@
lex.yy.o: lex.yy.c grammar.tab.h
misc.o: misc.c misc.h grammar.tab.h
$(CC) $(CFLAGS) -c -o $@ $< -DVERSIONSTR="\"git-$(VERSION)\""
%.o: %.c %.h
$(CC) $(CFLAGS) -c -o $@ $<
lex.yy.c: token.l
flex $<
%.tab.c %.tab.h: %.y
bison -d $<
clean:
rm -f grammar.tab.h grammar.tab.c lex.yy.c
rm -f misc.o grammar.tab.o lex.yy.o
rm -f pjass.exe
rm -f pjass-git-*.zip
release: pjass-git-$(VERSION)-src.zip pjass-git-$(VERSION).zip
pjass-git-$(VERSION)-src.zip: grammar.y token.l misc.c misc.h Makefile notes.txt readme.txt
zip -q pjass-git-$(VERSION)-src.zip $^
pjass-git-$(VERSION).zip: pjass
strip pjass.exe
upx --best --ultra-brute pjass.exe > /dev/null
zip -q pjass-git-$(VERSION).zip pjass.exe
SHOULD_FAIL := $(wildcard tests/should-fail/*.j)
SHOULD_CHECK := $(wildcard tests/should-check/*.j)
.PHONY: test print-test $(SHOULD_CHECK) $(SHOULD_FAIL)
$(SHOULD_CHECK): pjass print-test
@./check.sh $@
$(SHOULD_FAIL): pjass print-test
@./fail.sh $@
test: $(SHOULD_FAIL) $(SHOULD_CHECK)
print-test: pjass
@echo 'Testing... '
Mode |
Type |
Size |
Ref |
File |
100644 |
blob |
1600 |
fa7b62afe0fc9f7a809fa6fa7616972057cc3d3a |
Makefile |
100644 |
blob |
229 |
3adc8fc64ef88b38755f0b111ae2b56a6fd6e11b |
check.sh |
100644 |
blob |
170 |
ba08e6c05e854b88f72eb4d51d4a7bb64dac9369 |
fail.sh |
100644 |
blob |
26530 |
3d312744c4e334c5c7fdc1b53f3e74fcddde39d0 |
grammar.y |
100644 |
blob |
22072 |
9d200dcc77c9a5b19c01fb356f27e120d272cc96 |
misc.c |
100644 |
blob |
3501 |
d7b380f7d322ac48398a849d82fa6ebbfade3e47 |
misc.h |
100644 |
blob |
1302 |
13d65e05aca85cddd2f539b14d98cfbf1c622752 |
notes.txt |
100644 |
blob |
764 |
270df8583e78c80f366a8ab431fab673d89446d5 |
readme.txt |
100644 |
blob |
6011 |
12669ad561a8203826eac72c9bc8aba4ff554718 |
token.l |
Hints:
Before first commit, do not forget to setup your git environment:
git config --global user.name "your_name_here"
git config --global user.email "your@email_here"
Clone this repository using HTTP(S):
git clone https://rocketgit.com/user/vrtc/pjass
Clone this repository using ssh (do not forget to upload a key first):
git clone ssh://rocketgit@ssh.rocketgit.com/user/vrtc/pjass
Clone this repository using git:
git clone git://git.rocketgit.com/user/vrtc/pjass
You are allowed to anonymously push to this repository.
This means that your pushed commits will automatically be transformed into a
merge request:
... clone the repository ...
... make some changes and some commits ...
git push origin main