Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
R
riscv-gcc-1
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
lvzhengyang
riscv-gcc-1
Commits
ba1811f1
Commit
ba1811f1
authored
Jan 14, 1993
by
Ian Lance Taylor
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Build include files in build directory when doing make all.
From-SVN: r3242
parent
7e8b33d9
Show whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
111 additions
and
109 deletions
+111
-109
gcc/Makefile.in
+108
-106
gcc/cross-make
+3
-3
No files found.
gcc/Makefile.in
View file @
ba1811f1
...
@@ -88,6 +88,10 @@ CCLIBFLAGS = -O
...
@@ -88,6 +88,10 @@ CCLIBFLAGS = -O
# Version of ar to use when compiling libgcc1.a.
# Version of ar to use when compiling libgcc1.a.
OLDAR
=
ar
OLDAR
=
ar
# Target to use when installing include directory. Either
# install-headers-tar or install-headers-cpio.
INSTALL_HEADERS_DIR
=
install-headers-tar
# The GCC to use for compiling libgcc2.a, enquire, and cross-test.
# The GCC to use for compiling libgcc2.a, enquire, and cross-test.
# Usually the one we just built.
# Usually the one we just built.
# Don't use this as a dependency--use $(GCC_PASSES) or $(GCC_PARTS).
# Don't use this as a dependency--use $(GCC_PASSES) or $(GCC_PARTS).
...
@@ -209,12 +213,13 @@ LIB1FUNCS_EXTRA =
...
@@ -209,12 +213,13 @@ LIB1FUNCS_EXTRA =
# Assembler files should have names ending in `.asm'.
# Assembler files should have names ending in `.asm'.
LIB2FUNCS_EXTRA
=
LIB2FUNCS_EXTRA
=
# Default float.h source to use for cross-compiler.
CROSS_FLOAT_H
=
float.h-cross
# Program to convert libraries.
# Program to convert libraries.
LIBCONVERT
=
LIBCONVERT
=
# Control whether header files are installed.
# Control whether header files are installed.
# We will change this to install-fixincludes eventually.
# It would be useful for people to try this now.
INSTALL_HEADERS
=
install-headers
INSTALL_HEADERS
=
install-headers
# Select which version of fixincludes to use (I.E. regular versus SVR4)
# Select which version of fixincludes to use (I.E. regular versus SVR4)
...
@@ -257,7 +262,10 @@ HOST_OBSTACK=$(OBSTACK)
...
@@ -257,7 +262,10 @@ HOST_OBSTACK=$(OBSTACK)
ALL
=
all.internal
ALL
=
all.internal
# Choose the real install target.
# Choose the real install target.
INSTALL_TARGET
=
install-native
INSTALL_TARGET
=
install-normal
# Source for float.h. Overridden by cross-make.
FLOAT_H
=
float.h-nat
# End of variables for you to override.
# End of variables for you to override.
...
@@ -404,10 +412,6 @@ LIB2FUNCS = _muldi3 _divdi3 _moddi3 _udivdi3 _umoddi3 _negdi2 \
...
@@ -404,10 +412,6 @@ LIB2FUNCS = _muldi3 _divdi3 _moddi3 _udivdi3 _umoddi3 _negdi2 \
USER_H
=
va-alpha.h va-i860.h va-i960.h va-mips.h va-m88k.h
\
USER_H
=
va-alpha.h va-i860.h va-i960.h va-mips.h va-m88k.h
\
va-pa.h va-pyr.h va-sparc.h va-spur.h proto.h
$(EXTRA_HEADERS)
va-pa.h va-pyr.h va-sparc.h va-spur.h proto.h
$(EXTRA_HEADERS)
# All the header files that are installed for users from GCC itself.
INSTALLED_H
=
float.h stddef.h stdarg.h varargs.h
$(USER_H)
limits.h
\
syslimits.h
# The files that "belong" in CONFIG_H are deliberately omitted
# The files that "belong" in CONFIG_H are deliberately omitted
# because having them there would not be useful in actual practice.
# because having them there would not be useful in actual practice.
# All they would do is cause complete recompilation every time
# All they would do is cause complete recompilation every time
...
@@ -429,7 +433,7 @@ Makefile: $(srcdir)/Makefile.in $(srcdir)/configure $(srcdir)/version.c \
...
@@ -429,7 +433,7 @@ Makefile: $(srcdir)/Makefile.in $(srcdir)/configure $(srcdir)/version.c \
all.internal
:
start.encap rest.encap
all.internal
:
start.encap rest.encap
# This is what to compile if making a cross-compiler.
# This is what to compile if making a cross-compiler.
all.cross
:
native gcc-cross specs libgcc.a cross-test $(EXTRA_PARTS)
all.cross
:
native gcc-cross specs libgcc.a
stmp-headers
cross-test $(EXTRA_PARTS)
# This is what to compile if making gcc with a cross-compiler.
# This is what to compile if making gcc with a cross-compiler.
all.build
:
native xgcc $(EXTRA_PARTS)
all.build
:
native xgcc $(EXTRA_PARTS)
# This is what must be made before installing GCC and converting libraries.
# This is what must be made before installing GCC and converting libraries.
...
@@ -437,7 +441,7 @@ start.encap: native xgcc specs $(LIBGCC1) xlimits.h
...
@@ -437,7 +441,7 @@ start.encap: native xgcc specs $(LIBGCC1) xlimits.h
# Use this to make a GCC that will be used only to recompile GCC.
# Use this to make a GCC that will be used only to recompile GCC.
for-bootstrap
:
start.encap libgcc.a
for-bootstrap
:
start.encap libgcc.a
# These can't be made, with COFF encapsulation, until after GCC can run.
# These can't be made, with COFF encapsulation, until after GCC can run.
rest.encap
:
libgcc.a
float.h
$(EXTRA_PARTS)
rest.encap
:
libgcc.a
stmp-headers
$(EXTRA_PARTS)
# This is what is made with the host's compiler
# This is what is made with the host's compiler
# whether making a cross compiler or not.
# whether making a cross compiler or not.
native
:
config.status cpp $(LANGUAGES) $(EXTRA_PASSES) $(EXTRA_PROGRAMS) $(USE_COLLECT2)
native
:
config.status cpp $(LANGUAGES) $(EXTRA_PASSES) $(EXTRA_PROGRAMS) $(USE_COLLECT2)
...
@@ -500,9 +504,17 @@ cc1plus:$(P) $(CPLUS_OBJS) $(OBJS) $(LIBDEPS)
...
@@ -500,9 +504,17 @@ cc1plus:$(P) $(CPLUS_OBJS) $(OBJS) $(LIBDEPS)
cc1obj
:
$(P) $(OBJC_OBJS) $(OBJS) $(LIBDEPS)
cc1obj
:
$(P) $(OBJC_OBJS) $(OBJS) $(LIBDEPS)
$(CC)
$(ALL_CFLAGS)
$(LDFLAGS)
-o
cc1obj
$(OBJC_OBJS)
$(OBJS)
$(LIBS)
$(CC)
$(ALL_CFLAGS)
$(LDFLAGS)
-o
cc1obj
$(OBJC_OBJS)
$(OBJS)
$(LIBS)
float.h
:
enquire
# Copy float.h from its source.
-
./enquire
-f
>
tmp-float.h
float.h
:
$(FLOAT_H)
mv tmp-float.h float.h
cp
$(FLOAT_H)
float.h
# Create float.h source for the native machine.
float.h-nat
:
enquire
-
./enquire
-f
>
float.h-nat
# Create a dummy float.h source for a cross-compiler.
float.h-cross
:
echo
"#error float.h values not known for cross-compiler"
>
float.h-cross
# Used to compile enquire with standard cc, but have forgotten why.
# Used to compile enquire with standard cc, but have forgotten why.
# Let's try with GCC.
# Let's try with GCC.
...
@@ -1240,6 +1252,57 @@ test-protoize-simple: ./protoize ./unprotoize $(GCC_PASSES)
...
@@ -1240,6 +1252,57 @@ test-protoize-simple: ./protoize ./unprotoize $(GCC_PASSES)
diff
$(srcdir)
/protoize.c tmp-proto.c |
cat
diff
$(srcdir)
/protoize.c tmp-proto.c |
cat
-
rm
-f
tmp-proto.[cso]
-
rm
-f
tmp-proto.[cso]
# Build the include directory. The stamp files are stmp-* rather than
# stamp-* so that mostlyclean does not force the include directory to
# be rebuilt.
stmp-headers
:
stmp-fixincludes $(USER_H) gvarargs.h gstdarg.h gstddef.h gsyslimits.h xlimits.h float.h
# Copy in the headers provided with gcc.
# The sed command gets just the last file name component;
# this is necessary because VPATH could add a dirname.
# Using basename would be simpler, but some systems don't have it.
objdir
=
`
pwd
`
;
\
cd
$(srcdir)
;
\
for
file
in
$(USER_H)
;
do
\
realfile
=
`
echo
$$
file | sed
-e
's|.*/\([^/]*\)$$|\1|'
`
;
\
cp
$$
realfile
$$
objdir/include
;
\
chmod a+r
$$
objdir/include/
$$
realfile
;
\
done
-cd
include;
\
if
[
-f
limits.h
];
then
\
rm
-f
syslimits.h;
\
mv
limits.h
syslimits.h;
\
else
\
cp
$(srcdir)/gsyslimits.h
syslimits.h;
\
fi
chmod
a+r
include/syslimits.h
cp
$(srcdir)/gvarargs.h
include/varargs.h
chmod
a+r
include/varargs.h
cp
$(srcdir)/gstdarg.h
include/stdarg.h
chmod
a+r
include/stdarg.h
cp
$(srcdir)/gstddef.h
include/stddef.h
chmod
a+r
include/stddef.h
cp
xlimits.h
include/limits.h
chmod
a+r
include/limits.h
cp
float.h
include/float.h
chmod
a+r
include/float.h
# Install the README
cp
$(srcdir)/README-fixinc
include/README
chmod
a+r
include/README
touch
stmp-headers
# Build fixed copies of system files.
stmp-fixincludes
:
$(srcdir)/$(FIXINCLUDES)
rm
-rf
include
mkdir include
for
dir
in
$(SYSTEM_HEADER_DIR)
$(OTHER_FIXINCLUDES_DIRS)
;
do
\
if
[
-d
$$
dir
]
;
\
then
\
$(srcdir)
/
$(FIXINCLUDES)
include
$$
dir
$(srcdir)
;
\
else
true
;
fi
;
\
done
touch stmp-fixincludes
# Remake the info files.
# Remake the info files.
doc
:
$(srcdir)/cpp.info $(srcdir)/gcc.info
doc
:
$(srcdir)/cpp.info $(srcdir)/gcc.info
...
@@ -1317,6 +1380,8 @@ clean: mostlyclean
...
@@ -1317,6 +1380,8 @@ clean: mostlyclean
# but what better way is there?
# but what better way is there?
-rm
-f
libgcc.a
libgcc1.a
libgcc2.a
libgcc2.ready
libgcc1.null
-rm
-f
libgcc.a
libgcc1.a
libgcc2.a
libgcc2.ready
libgcc1.null
-rm
-f
*.dvi
-rm
-f
*.dvi
# Delete the include directory.
-rm
-rf
stmp-*
include
# Delete all files that users would normally create
# Delete all files that users would normally create
# while building and installing GCC.
# while building and installing GCC.
...
@@ -1347,20 +1412,14 @@ realclean: distclean
...
@@ -1347,20 +1412,14 @@ realclean: distclean
-
rm
-f
gplus.info
*
gplus.??s gplus.
*
aux
-
rm
-f
gplus.info
*
gplus.??s gplus.
*
aux
# Entry points `install' and `uninstall'.
# Entry points `install' and `uninstall'.
# Also temporarily `install-fixincludes' could replace `install-headers'.
# Also use `install-collect2' to install collect2 when the config files don't.
# Also use `install-collect2' to install collect2 when the config files don't.
# The semicolon is to prevent the install.sh -> install default rule
# The semicolon is to prevent the install.sh -> install default rule
# from doing anything.
# from doing anything.
install
:
$(INSTALL_TARGET) ;
install
:
$(INSTALL_TARGET) ;
# Copy the files of native compiler into directories where they will be run.
# Copy the compiler files into directories where they will be run.
install-native
:
install-common install-libgcc $(INSTALL_HEADERS)
\
install-normal
:
install-common install-libgcc $(INSTALL_HEADERS) install-man
install-man
# Copy the files of cross compiler into directories where they will be run.
install-cross
:
install-common install-common-headers
\
install-man install-libgcc
# Do nothing while making gcc with a cross-compiler. The person who
# Do nothing while making gcc with a cross-compiler. The person who
# makes gcc for the target machine has to know how to put a complete
# makes gcc for the target machine has to know how to put a complete
...
@@ -1496,37 +1555,41 @@ install-libobjc: libobjc.a install-dir
...
@@ -1496,37 +1555,41 @@ install-libobjc: libobjc.a install-dir
chmod a-x
$(libsubdir)
/libobjc.a
;
\
chmod a-x
$(libsubdir)
/libobjc.a
;
\
else
true
;
fi
else
true
;
fi
# Install all the header files for native compiler.
# Install all the header files built in the include subdirectory.
install-headers
:
install-common-headers install-float-h install-limits-h
install-headers
:
install-include-dir $(INSTALL_HEADERS_DIR) install-assert-h
# Fix symlinks to absolute paths in the installed include directory to
# point to the installed directory, not the build directory.
-files
=
`
cd
$(libsubdir)
/include
;
find
.
-type
l
-print
2>/dev/null
`
;
\
if
[
$$
?
-eq
0
]
;
then
\
dir
=
`
cd
include
;
pwd
`
;
\
for
i
in
$$
files
;
do
\
dest
=
`
ls
-ld
$(libsubdir)
/include/
$$
i | sed
-n
's/.*-> //p'
`
;
\
if
expr
"
$$
dest"
:
"
$$
dir.*"
>
/dev/null
;
then
\
rm
-f
$(libsubdir)
/include/
$$
i
;
\
ln
-s
$(libsubdir)
/include
`
echo
"
$$
dest"
| sed
"s|
$$
dir||"
`
$(libsubdir)
/include/
$$
i
;
\
fi
;
\
done
;
\
fi
# Install float.h for native compiler.
# Create or recreate the gcc private include file directory.
install-float-h
:
float.h install-dir
install-include-dir
:
-
rm
-f
$(libsubdir)
/include/float.h
-
rm
-rf
$(libsubdir)
/include
$(INSTALL_DATA)
float.h
$(libsubdir)
/include/float.h
mkdir
$(libsubdir)
/include
chmod a-x
$(libsubdir)
/include/float.h
-
chmod a+rx
$(libsubdir)
/include
# Install the include directory using tar.
install-headers-tar
:
stmp-headers install-include-dir
(
cd
include
;
tar
cf -
.
)
|
(
cd
$(libsubdir)
/include
;
tar
xpBf -
)
# Install the include directory using cpio.
install-headers-cpio
:
stmp-headers install-include-dir
(
cd
include
;
find
.
-print
| cpio
-pdum
$(libsubdir)
/include
)
# Install limits.h.
install-limits-h
:
xlimits.h install-dir
-
rm
-f
$(libsubdir)
/include/limits.h
$(INSTALL_DATA)
xlimits.h
$(libsubdir)
/include/limits.h
chmod a-x
$(libsubdir)
/include/limits.h
# Install the fixed headers that are the same for all machines.
install-common-headers
:
install-dir $(USER_H) gvarargs.h gstdarg.h gstddef.h gsyslimits.h assert.h
-
if
[
-d
$(libsubdir)
/include
]
;
then
true
;
else
mkdir
$(libsubdir)
/include
;
fi
-
chmod ugo+rx
$(libsubdir)
/include
# Must compute $(libsubdir) before the cd; the awk script won't work after.
shelllibsubdir
=
$(libsubdir)
;
\
cd
$(srcdir)
;
\
for
file
in
$(USER_H)
;
do
\
rm
-f
$$
shelllibsubdir/include/
`
basename
$$
file
`
;
\
$(INSTALL_DATA)
`
basename
$$
file
`
$$
shelllibsubdir/include/
`
basename
$$
file
`
;
\
chmod a-x
$$
shelllibsubdir/include/
`
basename
$$
file
`
;
\
done
# Put assert.h in /usr/local/include, so it won't override GNU libc's assert.h.
# Put assert.h in /usr/local/include, so it won't override GNU libc's assert.h.
# Don't replace the assert.h already there if it is not from GCC.
# Don't replace the assert.h already there if it is not from GCC.
# This code would be simpler if it tested for -f ... && ! grep ...
# This code would be simpler if it tested for -f ... && ! grep ...
# but supposedly the ! operator is missing in sh on some systems.
# but supposedly the ! operator is missing in sh on some systems.
install-assert-h
:
assert.h install-dir
if
[
-f
$(assertdir)
/assert.h
]
;
\
if
[
-f
$(assertdir)
/assert.h
]
;
\
then
\
then
\
if
grep
"__eprintf"
$(assertdir)
/assert.h
>
/dev/null
;
\
if
grep
"__eprintf"
$(assertdir)
/assert.h
>
/dev/null
;
\
...
@@ -1541,67 +1604,6 @@ install-common-headers: install-dir $(USER_H) gvarargs.h gstdarg.h gstddef.h gsy
...
@@ -1541,67 +1604,6 @@ install-common-headers: install-dir $(USER_H) gvarargs.h gstdarg.h gstddef.h gsy
$(INSTALL_DATA)
$(srcdir)
/assert.h
$(assertdir)
/assert.h
;
\
$(INSTALL_DATA)
$(srcdir)
/assert.h
$(assertdir)
/assert.h
;
\
chmod a-x
$(assertdir)
/assert.h
;
\
chmod a-x
$(assertdir)
/assert.h
;
\
fi
fi
-rm
-f
$(libsubdir)/include/syslimits.h
$(INSTALL_DATA)
$(srcdir)/gsyslimits.h
$(libsubdir)/include/syslimits.h
chmod
a-x
$(libsubdir)/include/syslimits.h
-rm
-f
$(libsubdir)/include/varargs.h
$(INSTALL_DATA)
$(srcdir)/gvarargs.h
$(libsubdir)/include/varargs.h
chmod
a-x
$(libsubdir)/include/varargs.h
-rm
-f
$(libsubdir)/include/stdarg.h
$(INSTALL_DATA)
$(srcdir)/gstdarg.h
$(libsubdir)/include/stdarg.h
chmod
a-x
$(libsubdir)/include/stdarg.h
-rm
-f
$(libsubdir)/include/stddef.h
$(INSTALL_DATA)
$(srcdir)/gstddef.h
$(libsubdir)/include/stddef.h
chmod
a-x
$(libsubdir)/include/stddef.h
# This is turned off because fixinc.svr4 can now get it directly from srcdir.
## Copy byteorder.h into the object file directory
## so that fixinc.svr4 can get at it if necessary.
## If the dirs are the same, this won't do anything.
## Delete file first in case it is read-only
# -if [ x`cd $(srcdir);pwd` != x`pwd` ]; then rm -f byteorder.h; else true; fi
# -cp $(srcdir)/byteorder.h . > /dev/null 2>&1
# $(libsubdir)/include:
# -if [ -d $(libsubdir)/include ] ; then true ; else mkdir $(libsubdir)/include ; fi
# -chmod ugo+rx $(libsubdir)/include
# This appears not to work. It isn't clear how to fix it.
# $(libsubdir)/include/README: $(libsubdir)/include $(srcdir)/$(FIXINCLUDES)
# LIB=$(libsubdir)/include $(srcdir)/$(FIXINCLUDES)
# $(INSTALL_DATA) $(srcdir)/fixincludes-README $@
# chmod a-x $@
# Run fixincludes in the proper directory.
install-fixincludes
:
install-headers
rm
-rf
$(libsubdir)
/tmp
mkdir
$(libsubdir)
/tmp
# Move aside the headers that come from GCC; delete all else.
# The sed command gets just the last file name component;
# this is necessary because VPATH could add a dirname.
# Using basename would be simpler, but some systems don't have it.
cd
$(libsubdir)/include;
\
for
file
in
$(INSTALLED_H);
do
\
realfile
=
`
echo
$$
file | sed
-e
's|.*/\([^/]*\)$$|\1|'
`
;
\
mv
$$
realfile ../tmp
;
\
done
;
\
rm
-rf
*
# Install fixed copies of system files.
for
dir
in
$(SYSTEM_HEADER_DIR)
$(OTHER_FIXINCLUDES_DIRS);
do
\
if
[
-d
$$dir
];
\
then
\
$(srcdir)/$(FIXINCLUDES)
$(libsubdir)/include
$$dir
$(srcdir);
\
else
true;
fi;
\
done
-cd
$(libsubdir)/include;
\
if
[
-f
limits.h
];
then
\
rm
-f
../tmp/syslimits.h;
\
cp
limits.h
../tmp/syslimits.h;
\
else
true;
fi
# Bring back gcc's header files.
cd
$(libsubdir)/include;
mv
../tmp/*
.;
rmdir
../tmp
# Install the README
$(INSTALL_DATA)
$(srcdir)/README-fixinc
$(libsubdir)/include/README
chmod
a-x
$(libsubdir)/include/README
# Use this target to install the program `collect2' under the name `ld'.
# Use this target to install the program `collect2' under the name `ld'.
install-collect2
:
collect2
install-collect2
:
collect2
...
...
gcc/cross-make
View file @
ba1811f1
...
@@ -13,11 +13,11 @@ RANLIB_TEST = $(RANLIB_TEST_FOR_TARGET)
...
@@ -13,11 +13,11 @@ RANLIB_TEST = $(RANLIB_TEST_FOR_TARGET)
# Dir to search for system headers. Normally /usr/include.
# Dir to search for system headers. Normally /usr/include.
SYSTEM_HEADER_DIR = $(tooldir)/include
SYSTEM_HEADER_DIR = $(tooldir)/include
# Cause installation using install-cross.
INSTALL_TARGET = install-cross
# Don't try to compile the things we can't compile.
# Don't try to compile the things we can't compile.
ALL = all.cross
ALL = all.cross
# Use cross-compiler version of float.h.
FLOAT_H = $(CROSS_FLOAT_H)
# Don't install assert.h in /usr/local/include.
# Don't install assert.h in /usr/local/include.
assertdir = $(tooldir)/include
assertdir = $(tooldir)/include
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment