Skip to content

Commit cadf942

Browse files
committed
Revise GCC Makefile
* Add install target * Enable out-of-source-builds * Fix target directory creation
1 parent 658c22d commit cadf942

File tree

2 files changed

+76
-77
lines changed

2 files changed

+76
-77
lines changed

.CI/Jenkinsfile

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -221,9 +221,8 @@ def makefile(CC, dotest) {
221221
sh label: "Build makefile $CC", script: """
222222
export CC=$CC
223223
rm -rf Modelica/Resources/Library/*
224-
mkdir -p "Modelica/Resources/Library/$LIBDIR"
225-
cd Modelica/Resources/BuildProjects/gcc
226-
make --output-sync -j${numPhysicalCPU()} TARGETDIR="$LIBDIR"
224+
cd Modelica/Resources
225+
make install -C BuildProjects/gcc --output-sync -j${numPhysicalCPU()} TARGETDIR="$LIBDIR" BUILDDIR="../../build"
227226
"""
228227
sh label: "Test $CC", script: """
229228
export CC=$CC
Lines changed: 74 additions & 74 deletions
Original file line numberDiff line numberDiff line change
@@ -1,102 +1,102 @@
1+
CC ?= cc
12
AR = ar -ru
23
RM = rm -f
34

5+
TARGETDIR ?= linux64
6+
BUILDDIR ?= build
7+
8+
OBJDIR := $(BUILDDIR)/obj
9+
LIBDIR := $(BUILDDIR)/lib
10+
11+
INSTALLDIR := ../../Library/$(TARGETDIR)
12+
413
CFLAGS = -O3 -Wno-attributes -fno-delete-null-pointer-checks
514
CPPFLAGS = -DNDEBUG -DHAVE_UNISTD_H -DHAVE_STDARG_H -DHAVE_HIDDEN -DHAVE_MEMCPY
6-
INC = -I"../../C-Sources/zlib"
15+
INC = -I"../../C-Sources/zlib"
716

8-
TARGETDIR = linux64
17+
SRC := ../../C-Sources
18+
ZLIBSRC := $(SRC)/zlib
919

1020
EXTC_OBJS = \
11-
ModelicaFFT.o \
12-
ModelicaInternal.o \
13-
ModelicaRandom.o \
14-
ModelicaStrings.o
21+
$(OBJDIR)/ModelicaFFT.o \
22+
$(OBJDIR)/ModelicaInternal.o \
23+
$(OBJDIR)/ModelicaRandom.o \
24+
$(OBJDIR)/ModelicaStrings.o
1525

1626
TABLES_OBJS = \
17-
ModelicaStandardTables.o \
18-
ModelicaStandardTablesUsertab.o
27+
$(OBJDIR)/ModelicaStandardTables.o \
28+
$(OBJDIR)/ModelicaStandardTablesUsertab.o
1929

2030
MATIO_OBJS = \
21-
ModelicaMatIO.o \
22-
snprintf.o
31+
$(OBJDIR)/ModelicaMatIO.o \
32+
$(OBJDIR)/snprintf.o
2333

2434
IO_OBJS = \
25-
ModelicaIO.o
35+
$(OBJDIR)/ModelicaIO.o
2636

2737
ZLIB_OBJS = \
28-
adler32.o \
29-
compress.o \
30-
crc32.o \
31-
deflate.o \
32-
gzclose.o \
33-
gzlib.o \
34-
gzread.o \
35-
gzwrite.o \
36-
infback.o \
37-
inffast.o \
38-
inflate.o \
39-
inftrees.o \
40-
trees.o \
41-
uncompr.o \
42-
zutil.o
43-
44-
ALL_OBJS = $(EXTC_OBJS) $(TABLES_OBJS) $(MATIO_OBJS) $(IO_OBJS) $(ZLIB_OBJS)
45-
46-
all: clean
47-
$(MAKE) libModelicaExternalC.a libModelicaStandardTables.a libModelicaIO.a libModelicaMatIO.a libzlib.a
48-
49-
libModelicaExternalC.a: $(EXTC_OBJS)
50-
$(AR) $@ $(EXTC_OBJS)
51-
cp $@ ../../Library/$(TARGETDIR)/$@
52-
53-
libModelicaStandardTables.a: $(TABLES_OBJS)
54-
$(AR) $@ $(TABLES_OBJS)
55-
cp $@ ../../Library/$(TARGETDIR)/$@
56-
57-
libModelicaMatIO.a: $(MATIO_OBJS)
58-
$(AR) $@ $(MATIO_OBJS)
59-
cp $@ ../../Library/$(TARGETDIR)/$@
60-
61-
libModelicaIO.a: $(IO_OBJS)
62-
$(AR) $@ $(IO_OBJS)
63-
cp $@ ../../Library/$(TARGETDIR)/$@
64-
65-
libzlib.a: $(ZLIB_OBJS)
66-
$(AR) $@ $(ZLIB_OBJS)
67-
cp $@ ../../Library/$(TARGETDIR)/$@
68-
69-
ModelicaStandardTables.o: ../../C-Sources/ModelicaStandardTables.c
70-
$(CC) $(CPPFLAGS) -DTABLE_SHARE=1 $(CFLAGS) $(INC) -c -o $@ $<
38+
$(OBJDIR)/adler32.o \
39+
$(OBJDIR)/compress.o \
40+
$(OBJDIR)/crc32.o \
41+
$(OBJDIR)/deflate.o \
42+
$(OBJDIR)/gzclose.o \
43+
$(OBJDIR)/gzlib.o \
44+
$(OBJDIR)/gzread.o \
45+
$(OBJDIR)/gzwrite.o \
46+
$(OBJDIR)/infback.o \
47+
$(OBJDIR)/inffast.o \
48+
$(OBJDIR)/inflate.o \
49+
$(OBJDIR)/inftrees.o \
50+
$(OBJDIR)/trees.o \
51+
$(OBJDIR)/uncompr.o \
52+
$(OBJDIR)/zutil.o
53+
54+
LIBS = \
55+
$(LIBDIR)/libModelicaExternalC.a \
56+
$(LIBDIR)/libModelicaStandardTables.a \
57+
$(LIBDIR)/libModelicaIO.a \
58+
$(LIBDIR)/libModelicaMatIO.a \
59+
$(LIBDIR)/libzlib.a
60+
61+
.PHONY: all install clean
62+
63+
all: $(LIBS)
64+
65+
install: all | $(INSTALLDIR)
66+
cp $(LIBDIR)/*.a $(INSTALLDIR)/
7167

72-
ModelicaStandardTablesUsertab.o: ../../C-Sources/ModelicaStandardTablesUsertab.c
73-
$(CC) $(CPPFLAGS) -DDUMMY_FUNCTION_USERTAB $(CFLAGS) $(INC) -c -o $@ $<
68+
clean:
69+
$(RM) -r $(BUILDDIR)
7470

75-
ModelicaMatIO.o: ../../C-Sources/ModelicaMatIO.c
76-
$(CC) $(CPPFLAGS) -DHAVE_ZLIB=1 $(CFLAGS) $(INC) -c -o $@ $<
71+
$(OBJDIR) $(LIBDIR) $(INSTALLDIR):
72+
mkdir -p $@
7773

78-
snprintf.o: ../../C-Sources/snprintf.c
79-
$(CC) $(CPPFLAGS) $(CFLAGS) $(INC) -c -o $@ $<
74+
$(LIBDIR)/libModelicaExternalC.a: $(EXTC_OBJS) | $(LIBDIR)
75+
$(AR) $@ $^
8076

81-
ModelicaIO.o: ../../C-Sources/ModelicaIO.c
82-
$(CC) $(CPPFLAGS) $(CFLAGS) $(INC) -c -o $@ $<
77+
$(LIBDIR)/libModelicaStandardTables.a: $(TABLES_OBJS) | $(LIBDIR)
78+
$(AR) $@ $^
8379

84-
ModelicaFFT.o: ../../C-Sources/ModelicaFFT.c
85-
$(CC) $(CPPFLAGS) $(CFLAGS) $(INC) -c -o $@ $<
80+
$(LIBDIR)/libModelicaMatIO.a: $(MATIO_OBJS) | $(LIBDIR)
81+
$(AR) $@ $^
8682

87-
ModelicaInternal.o: ../../C-Sources/ModelicaInternal.c
88-
$(CC) $(CPPFLAGS) $(CFLAGS) $(INC) -c -o $@ $<
83+
$(LIBDIR)/libModelicaIO.a: $(IO_OBJS) | $(LIBDIR)
84+
$(AR) $@ $^
8985

90-
ModelicaRandom.o: ../../C-Sources/ModelicaRandom.c
91-
$(CC) $(CPPFLAGS) $(CFLAGS) $(INC) -c -o $@ $<
86+
$(LIBDIR)/libzlib.a: $(ZLIB_OBJS) | $(LIBDIR)
87+
$(AR) $@ $^
9288

93-
ModelicaStrings.o: ../../C-Sources/ModelicaStrings.c
89+
$(OBJDIR)/%.o: $(SRC)/%.c | $(OBJDIR)
9490
$(CC) $(CPPFLAGS) $(CFLAGS) $(INC) -c -o $@ $<
9591

96-
%.o: ../../C-Sources/zlib/%.c
92+
$(OBJDIR)/%.o: $(ZLIBSRC)/%.c | $(OBJDIR)
9793
$(CC) $(CPPFLAGS) $(CFLAGS) $(INC) -c -o $@ $<
9894

99-
clean:
100-
$(RM) $(ALL_OBJS)
101-
$(RM) *.a
102-
$(RM) ../../Library/$(TARGETDIR)/*.a
95+
$(OBJDIR)/ModelicaStandardTables.o: $(SRC)/ModelicaStandardTables.c | $(OBJDIR)
96+
$(CC) $(CPPFLAGS) -DTABLE_SHARE=1 $(CFLAGS) $(INC) -c -o $@ $<
97+
98+
$(OBJDIR)/ModelicaStandardTablesUsertab.o: $(SRC)/ModelicaStandardTablesUsertab.c | $(OBJDIR)
99+
$(CC) $(CPPFLAGS) -DDUMMY_FUNCTION_USERTAB $(CFLAGS) $(INC) -c -o $@ $<
100+
101+
$(OBJDIR)/ModelicaMatIO.o: $(SRC)/ModelicaMatIO.c | $(OBJDIR)
102+
$(CC) $(CPPFLAGS) -DHAVE_ZLIB=1 $(CFLAGS) $(INC) -c -o $@ $<

0 commit comments

Comments
 (0)