-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathmakefile
More file actions
85 lines (66 loc) · 2 KB
/
makefile
File metadata and controls
85 lines (66 loc) · 2 KB
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
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
# Makefile for Lax 6.0.7
# Time-stamp: <2026-4-12 16:02:01 Mavox-ID>
# Unix-systems
CC = gcc -pedantic
PIC = -fpic
Osuf=o
SOsuf=so
LIBsuf=a
EXE_EXT=
LIBPREFIX=lib
OUT = -o $@
RM= -rm -f
AR= ar crs
# Linux
LD = gcc
LDFLAGS = -shared -s -flto=auto
DEBUG = -Os -fno-stack-protector -fno-ident -fno-unwind-tables -fno-asynchronous-unwind-tables -ffunction-sections -fdata-sections -fomit-frame-pointer -flto=auto
SYS_LIBS = -ldl -lm
FEATURES = -DUSE_MATH=1 -DUSE_ASCII_NAMES=1
OBJS = Lax.$(Osuf) linenoise.$(Osuf)
LIBTARGET = $(LIBPREFIX)Lax.$(SOsuf)
STATICLIBTARGET = $(LIBPREFIX)Lax.$(LIBsuf)
# UPX
UPX = upx
UPXFLAGS = --best --lzma -qq
PREFIX = /usr/local
BINDIR = $(PREFIX)/bin
all: $(LIBTARGET) $(STATICLIBTARGET) Lax$(EXE_EXT)
Lax$(EXE_EXT): $(OBJS)
$(CC) $(DEBUG) -o $@ $(OBJS) $(SYS_LIBS)
strip --strip-all $@
$(UPX) $(UPXFLAGS) $@
%.$(Osuf): %.c
$(CC) $(PIC) -I. -c $(DEBUG) $(FEATURES) $(DL_FLAGS) $<
$(LIBTARGET): $(OBJS)
$(LD) $(LDFLAGS) $(OUT) $(OBJS) $(SYS_LIBS)
$(STATICLIBTARGET): $(OBJS)
$(AR) $@ $(OBJS)
$(OBJS): Lax.h Lax-cell.h com.h
linenoise.$(Osuf): linenoise.h
install: Lax$(EXE_EXT)
@echo "Need root to copy Lax in /usr/local/bin:"
@echo "We use sudo for:"
@echo "1. install -d $(DESTDIR)$(BINDIR)"
@echo "2. sudo install -m 755 Lax$(EXE_EXT) $(DESTDIR)$(BINDIR)/Lax"
@echo "You can check makefile for source"
sudo install -d $(DESTDIR)$(BINDIR)
sudo install -m 755 Lax$(EXE_EXT) $(DESTDIR)$(BINDIR)/Lax
uninstall:
$(RM) $(DESTDIR)$(BINDIR)/Lax
help:
@echo "Targets:"
@echo " make - Build binary"
@echo " make clean - Remove build files"
@echo " make install - Install binary to system"
@echo " make uninstall - Uninstall binary for system"
@echo " make help - Show this help"
clean:
$(RM) $(OBJS) $(LIBTARGET) $(STATICLIBTARGET) Lax$(EXE_EXT)
$(RM) Lax.ilk Lax.map Lax.pdb Lax.exp
$(RM) Lax.ilk Lax.map Lax.pdb Lax.lib Lax.exp
$(RM) *~ .lax_history
TAGS_SRCS = Lax.h Lax.c linenoise.h linenoise.c
tags: TAGS
TAGS: $(TAGS_SRCS)
etags $(TAGS_SRCS)