2020ARCH=Linux
2121include Makefile.generic1
2222
23+ THREAD= -DTHREADED -DPTHREAD
24+ MFLAGS=
25+ XVERSION=X_V11R6_1
26+
2327#
2428# Select CFLAGS and XVERSION according to the version of SunOS and Xlib.
2529#
@@ -28,42 +32,62 @@ include Makefile.generic1
2832GCC_MAJOR_VERSION=$(shell gcc -dumpversion | sed -e 's/\([0-9]\)\.\([0-9]\+\).*/\1/')
2933GCC_MINOR_VERSION=$(shell gcc -dumpversion | sed -e 's/\([0-9]\)\.\([0-9]\+\).*/\2/')
3034# GCC_PATCH_VERSION=$(shell gcc -dumpversion | sed -e 's/\([0-9]\)\.\([0-9]\)\.\([0-9]\)/\3/')
35+ ifneq (,$(findstring 64,$(shell gcc -dumpmachine)))
36+ ifeq ($(GCC_MAJOR_VERSION), 2)
37+ ALIGN_FUNCTIONS="-malign-functions=8"
38+ else
39+ ALIGN_FUNCTIONS=-falign-functions=8
40+ GCC3=-DGCC3
41+ endif
42+ else
43+ ifeq ($(GCC_MAJOR_VERSION), 2)
44+ ALIGN_FUNCTIONS="-malign-functions=4"
45+ else
46+ ALIGN_FUNCTIONS=-falign-functions=4
47+ GCC3=-DGCC3
48+ endif
49+ endif
3150
3251ADD_LDFLAGS=
3352ifneq (,$(findstring t,$(shell if [ \( $(GCC_MAJOR_VERSION) -eq 4 -a $(GCC_MINOR_VERSION) -ge 5 \) -o $(GCC_MAJOR_VERSION) -ge 5 ] ; then echo t ;fi )))
3453ADD_LDFLAGS += -Wl,--no-as-needed
3554endif
3655
37- CPU_OPTIMIZE=-march=i586
56+ # set CPU arch with -D
57+ MACHINE=$(shell uname -m)
58+ # need to set 'i486', for conditionals in c/*.[ch].
59+ ifneq ($(shell gcc -dumpmachine | grep "i.*86-linux"),)
60+ MACHINE=i486
61+ endif
3862
39- # Pentium's arch returns 'i586', which is ignored by conditionals in c/*.[ch].
40- MACHINE=i486
63+ DEBUG= # -g
4164
42- # set OFLAGS either to -O or to -g.
43- OFLAGS=-O
44- # OFLAGS=-g
4565
4666# If you use libc.so.5, remove -DLIB6 option.
4767# If you use old linux that does not know mallopt, add -OLD_LINUX option.
4868
49- #CFLAGS=-D$(MACHINE) -DLinux -DLIB6 -D_REENTRANT -DVERSION=\"$(VERSION)\" \
50- # $(CPU_OPTIMIZE) -DGCC \
51- # -I$(EUSDIR)/include
52- CFLAGS=-D$(MACHINE) -DLinux -D_REENTRANT -DVERSION=\"$(VERSION)\" \
53- -DLIB6 $(CPU_OPTIMIZE) -DGCC -falign-functions=4 \
54- -I$(EUSDIR)/include
55- PIC= -fpic
69+ CFLAGS:= $(CFLAGS) $(CPPFLAGS) $(WFLAGS) -D$(MACHINE) -DLinux -D_REENTRANT -DVERSION=\"$(VERSION)\" \
70+ -DLIB6 $(ALIGN_FUNCTIONS) -fsigned-char -fno-stack-protector \
71+ $(DEBUG) $(CPU_OPTIMIZE) $(THREAD) -D$(XVERSION) \
72+ -DGCC $(GCC3) \
73+ -I/usr/include -I/usr/X11R6/include -I$(EUSDIR)/include
74+
75+ # machine specific CFLAGS
76+ ifneq ($(shell gcc -dumpmachine | egrep "^(arm|aarch)"),)
77+ ADD_LDFLAGS=-Wl,-z,execstack
78+ CFLAGS+=-DARM -fPIC
79+ ARCH=LinuxARM
80+ endif
81+ ifneq ($(shell gcc -dumpmachine | grep "^x86_64"),)
82+ CFLAGS+=-fPIC
83+ ARCH=Linux64
84+ endif
5685
5786# Use gcc for C-compiling on SunOS4. Sun's cc is ok on Solaris.
5887# /usr/ucb/cc cannot compile because of its incapability of recognizing
5988# prototype declarations.
6089CC=cc
61- # CC=gcc
62-
63- #XVERSION=X_V11R2
64- #XVERSION=X_V11R3
65- #XVERSION=X_V11R4
66- XVERSION=X_V11R6
90+ LD=ld
6791
6892#
6993# L I B R A R I E S
@@ -78,24 +102,36 @@ XVERSION=X_V11R6
78102# On Solaris, XLIB and EUSLIB are combined together into lib/libeusx.so.
79103
80104# Linux
81- RAWLIB=-ldl -lm
105+ RAWLIB=-ldl -lm -lpthread -lc
82106XLIB= -L/usr/X11R6/lib -lX11
83107
84108# specify directories where euslisp's libraries are located.
85- EUSLIB= -Xlinker -L$(ADLIBDIR)
86- # GLLIB= -L$(ADLIBDIR) -ltk -lGLU -lGL -lXext -leusgl
87- GLLIB= -L$(ADLIBDIR) -L/usr/local/lib -lGLU -lGL -lXext -leusgl
109+ EUSRPATH=-R$(ADLIBDIR):$(EUSDIR)/lib/Linux
110+ EUSLIB= -Xlinker $(EUSRPATH) -L$(ADLIBDIR)
111+ GLLIB= -L$(ADLIBDIR) -lGLU -lGL -lXext -leusgl
112+
113+ # POSIX Thread
114+ THREADDEP=mthread_posix.c
115+ #THREADDEP=pthreads.c
116+
117+ # If you don't like optimization, comment out the next line.
118+ OFLAGS=-O2
119+
120+ # link-editor's default flags ?-rdynamic
121+ SOFLAGS:= $(LDFLAGS) -shared -Xlinker -build-id
122+ LD=gcc
123+ LDFLAGS:= $(LDFLAGS) -rdynamic -fno-stack-protector -z execstack $(ADD_LDFLAGS)
124+ MTCOBJECTS= $(OBJDIR)/mthread.o $(OBJDIR)/mthread_posix.o
125+ #MTCOBJECTS= $(OBJDIR)/mthread.o $(OBJDIR)/pthreads.o
126+ MAPOPTION= $(OBJDIR)/par.o
88127
89- # link-editor's default flags ?-rdynamic
90- SOFLAGS= -shared -build-id
91- LDFLAGS= -rdynamic $(ADD_LDFLAGS)
92- MTOBJECTS=
93- MTCOBJECTS=
94- MAPOPTION=-Xlinker -Map -Xlinker $(ADLIBDIR)/eusmap
95128
96129#################################################################
97130# end of the customizable section
98131################################################################
99132
100133include Makefile.generic2
101134
135+ eusjpeg:
136+ make -C image/jpeg/ ARCHDIR=$(ARCH) EUSDIR=$(EUSDIR)
137+
0 commit comments