Commit graph

3,460 commits

Author SHA1 Message Date
2c749020d1 defs-cpp.mk: Some indentation cleanup
Signed-off-by: Jan Lindemann <jan@janware.com>
2019-03-03 09:03:13 +00:00
22d89ef234 projects-dir.mk: Make clean target less aggressive
The clean target now doesn't remove meta files which enforce a new pull if
absent. distclean is the new clean.

Signed-off-by: Jan Lindemann <jan@janware.com>
2019-03-03 08:36:31 +00:00
094f04d02e defs.mk: Include platform.mk from projects.mk
This is needed for MOD_SCRIPT_DIR

Signed-off-by: Jan Lindemann <jan@janware.com>
2019-03-02 19:59:53 +00:00
f9d398d219 make: Fix MinGW build machinery machinery
This commit makes it possible to successfully run "make all" against ytools'
again, with TARGET_TUPLE set to i686-ms-w64-mingw. Lots of minor and major
tweaks here and there.

The biggest diff is a move of the architecture-related definitions into
platform.mk. The are needed pretty early on, so that seems reasonable.

Making this work again is part of the larger effort to support cross
buildchains in a more concise way, i.e. without so many if ($(TARGET),mingw))
all over the place. TARGET's relevance should dwindle, until it's finally taken
over by the TARGET_XXX variables extracted from TARGET_TUPLE or TARGET_TRIPLET.

Signed-off-by: Jan Lindemann <jan@janware.com>
2019-03-02 17:21:48 +00:00
ac2f4f6cc7 Fix: JANWARE_WiKI for client jw needs a conditional
Signed-off-by: Jan Lindemann <jan@janware.com>
2019-03-02 09:50:58 +00:00
f9f437496d defs.mk: Somewhat more consistent indentation of conditionals
Signed-off-by: Jan Lindemann <jan@janware.com>
2019-03-01 11:08:34 +00:00
8bb94c6f57 defs.mk / defs-cpp.mk: Some reordering of variables
Reordered some variables in defs.mk and defs-cpp.mk for clarity. Most notably
FULL_NAME was moved back into defs.mk, which amounts to a bugfix.

Signed-off-by: Jan Lindemann <jan@janware.com>
2019-03-01 11:03:23 +00:00
f40356cf59 make/*.mk: More performance tweaks
Signed-off-by: Jan Lindemann <jan@janware.com>
2019-02-28 16:12:58 +00:00
ab872fe334 git-submod.mk: Add support for USE_USER_URL
Signed-off-by: Jan Lindemann <jan@janware.com>
2019-02-28 16:12:31 +00:00
3dd55cf067 Further improve build time: Try to avoid calling projects.py
This commit tries to remove the necessity to call projects.py from $(TOPDIR) to
speed up recursive builds over all projects yet again. This is a major
undertaking. There are two variables which are filled py projects.py in
$(TOPDIR): PREREQ and PREREQ_DIRS. Sadly, the latter is a path relative to
$(TOPDIR)/make, so this is kind of pointless. Unless the cache is maintained in
$(TOPDIR), a thing I tried to avoid. So this commit is only able to cache
$(PREREQ), not $(PREREQ_DIRS), which still is a hassle. Introduced defs-dirs.mk
for that, to make it accessible to make.mk, and modified all the other parts of
the machinery, too.

Signed-off-by: Jan Lindemann <jan@janware.com>
2019-02-28 14:48:57 +00:00
9e245c986e make: Further improve build time
This commit sees several improvements to the build performance:

- Introduce cache.mk, which creates makefiles caching often used
  variables, per tree and per project.
- Define more variables with := enclosed in condistions, instead of
  defining them with ?=, because the RHS of ?= is expanded deferredly.
- Add more definitions for executables.
- Move some more specialized definitions out into specialized makefiles,
  notably htdocs.mk and tmpl.mk

Signed-off-by: Jan Lindemann <jan@janware.com>
2019-02-28 13:22:12 +00:00
316435bb78 $(MODDIR)/make/defs.mk: Split off defs-cpp.mk with C++ definitions
C++ definitions are numerous, and they shouldn't pollute variable space and
performance outside of directories containing C++ files. This commit pushes
them into a defs-cpp.mk file.

Signed-off-by: Jan Lindemann <jan@janware.com>
2019-02-27 20:46:54 +00:00
54d5790167 $(MODDIR)/make/defs.mk: Set HDRDIR_SCOPE_PREFIX = $(PROJECT)
Set HDRDIR_SCOPE_PREFIX = $(PROJECT) by default.

Signed-off-by: Jan Lindemann <jan@janware.com>
2019-02-27 17:29:59 +00:00
cec620c00e defs.mk: Reduce multiple invocations of external commands
Many external commands are called unnecessarily often, because either there's a
GNU Make internal alternative, or because they are invoked from within a
recursively defined variable. This patch adresses that and lessens make
invocation time per directory by factor 3.

Signed-off-by: Jan Lindemann <jan@janware.com>
2019-02-27 16:44:02 +00:00
e16b4c6d82 defs.mk: Fix MAKE_BENCHMARK support
Signed-off-by: Jan Lindemann <jan@janware.com>
2019-02-27 14:49:05 +00:00
e5133234bb defs.mk: Fix broken TARGET_ARCH, _VENDOR, _OS, _ABI
Signed-off-by: Jan Lindemann <jan@janware.com>
2019-02-27 14:18:35 +00:00
9f2524c736 defs.mk: Fix missing ARCH_32 constant
Signed-off-by: Jan Lindemann <jan@janware.com>
2019-02-27 13:56:13 +00:00
a0a6dec506 defs.mk: Some cleanup in target platform variables
Signed-off-by: Jan Lindemann <jan@janware.com>
2019-02-27 11:56:57 +00:00
51e1d2a246 get-os.sh: Add support for command tuple
Signed-off-by: Jan Lindemann <jan@janware.com>
2019-02-27 11:56:54 +00:00
b37359a725 $(MODDIR)/make/defs.mk: Replace variable OS with OS_NAME_VERSION
OS_NAME_VERSION is less ambiguous.

Signed-off-by: Jan Lindemann <jan@janware.com>
2019-02-27 10:22:27 +00:00
6518acdb5a mcu-defs.mk, mcu-topdir.mk: Add mcu-defs.mk and mcu-topdir.mk
Signed-off-by: Jan Lindemann <jan@janware.com>
2019-02-27 10:22:24 +00:00
2061d731f5 projects-dir.mk: Add time measurement to make all
The "all" target's command is now preceded by /usr/bin/time
by default

Signed-off-by: Jan Lindemann <jan@janware.com>
2019-02-16 10:16:19 +00:00
0a04f98785 projects.mk: Disable proj_query macros for undefined $TOPDIR
proj_query based commands run projects.py, which needs $(TOPDIR), which in turn
is undefined, notably for standalone-exe.mk. This commit avoids related
warnings.

Signed-off-by: Jan Lindemann <jan@janware.com>
2019-02-14 09:00:41 +00:00
34fbea1876 pkg.sh log-install: Fix -A option
Switch -A was passed with a bogus : to getopt

Signed-off-by: Jan Lindemann <jan@janware.com>
2019-02-07 11:04:46 +00:00
098653aed2 pgit.sh: Add --recurse-submodules to all git fetch, pull and push
Signed-off-by: Jan Lindemann <jan@janware.com>
2019-02-07 11:04:45 +00:00
019dd47c02 pkg.sh log-install: Fix link-in target for shared libraries
Shared libraries were detected as executables, which is true in a way, but
still the log-install target shouldn't wrap them into scripts.

Signed-off-by: Jan Lindemann <jan@janware.com>
2019-02-05 15:02:36 +00:00
73f97ba3b4 rpmdist.mk: Add target pkg-build-install
The target comes in handy for installing all packages in a dependency list not
already installed.

Signed-off-by: Jan Lindemann <jan@janware.com>
2019-02-05 15:02:35 +00:00
eecc030d74 create-mkspec.sh: Add support for global.vendor config entry
Signed-off-by: Jan Lindemann <jan@janware.com>
2019-01-30 16:23:40 +00:00
bcbc9f83bc defs.mk: Change build C|CPP|LDFLAGS order
Order is now: $(LOCAL_CFLAGS) $(PROJECT_CFLAGS) $(COMPLILER_CFLAGS)
which resulted in header files specified in $(LOCAL_CFLAGS) found
after those of $(PROJECT_CFLAGS).

Still not optimal, as this way other general flags, e.g. optimization
flags, override more specialized ones. Maybe use INCLUDES instead.

Signed-off-by: Jan Lindemann <jan@janware.com>
2019-01-30 16:23:36 +00:00
f1d9bba070 targets-tools.mk: Fix HDRDIR_SCOPE_SUFFIX for nested include dir structure
The attempt to have local include directory with HDRDIR_SCOPE_SUFFIX
pointing to the working directory failed the last time around. This
commit tries to fix that.

Signed-off-by: Jan Lindemann <jan@janware.com>
2019-01-30 16:23:29 +00:00
88bf4b381b conf.mk, crontab.mk: Fix accidental cleanup of .h in conf.mk and crontab.mk
Signed-off-by: Jan Lindemann <jan@janware.com>
2019-01-30 16:23:24 +00:00
9fd2f3f9ec topdir.mk: Remove *dist* with topdir.distclean
Signed-off-by: Jan Lindemann <jan@janware.com>
2019-01-30 16:23:20 +00:00
bcebe4dbd3 defs.mk: Fix commit 6fc4125
Commit 6fc4125 introduced broken installation paths if PROJECT was
auto-detected. It included the version.

Also include *.ini into LOCAL_CFG by default.

Signed-off-by: Jan Lindemann <jan@janware.com>
2019-01-30 16:23:15 +00:00
522eb228ce scm.sh: Automatically activate opt_no_submodules for git 1.x
Signed-off-by: Jan Lindemann <jan@janware.com>
2019-01-30 16:23:11 +00:00
6a4092b8af topdir.mk: Don't set default SUBDIRS if ORDERED_SUBDIRS is set
If ORDERED_SUBDIRS is set, SUBDIRS should by default start with
$(ORDERED_SUBDIRS), and filled up with what $(FIND_SUBDIRS) turns up.

Signed-off-by: Jan Lindemann <jan@janware.com>
2019-01-30 16:23:07 +00:00
d7da4f1cb8 mkspec-wrapper.sh: Fix append() for special characters
The append() shell function was unable to cope with special
characters, notably with () in RPM provides libnnz12.so()(64bit),
this commit fixes that. And introduces some (disabled) debug code
into projects.py.

Signed-off-by: Jan Lindemann <jan@janware.com>
2019-01-30 16:23:03 +00:00
8d30bbf748 defs.mk, get-os.sh: Define OSTYPE as linux on Linux
The environment variable OSTYPE contains different values
on Linux: Linux on OpenSUSE and linux-gnu on RHEL / CentOS

Signed-off-by: Jan Lindemann <jan@janware.com>
2019-01-30 16:22:58 +00:00
19e4095c94 proj.mk: Define MODDIR with ?=, to allow external jw-build
jw-build can handle its own builds and releases, but fixing that can
be nicer if the development and the test directory are seperate

Signed-off-by: Jan Lindemann <jan@janware.com>
2019-01-08 11:12:32 +00:00
bb58932e24 git-cvs-bridge.mk: Add support for GIT_CVSIMPORT_EXTRA_ARGS
Signed-off-by: Jan Lindemann <jan@janware.com>
2019-01-08 11:03:36 +00:00
c713793e16 srcdist.mk: Make wd-upload work with upload-defs.mk
wd-upload doesn\'t work at all, because it clashed with rpmdist.mk defining
stuff used by the upload-*.mk files. The RPM-side of things is left untested.

Signed-off-by: Jan Lindemann <jan@janware.com>
2019-01-08 10:53:32 +00:00
c8e664bcb9 Makefile, git-cvs-bridge.mk, srcdist.mk: Add git-cvs-bridge.mk
Signed-off-by: Jan Lindemann <jan@janware.com>
2019-01-08 08:55:17 +00:00
9f4d0adf5f srcdist.mk: Trade obsolete contents for VCS-aware tarball generation
Ditch the old and mostly dysfunctional contents of srcdist.mk and refill it
with rules to generate a source code tarball containing version control meta
files.

Signed-off-by: Jan Lindemann <jan@janware.com>
2019-01-08 08:09:06 +00:00
c12b242a72 upload-*.mk: Remove redundant variable definitions
Merge redundant upload definitions from upload.mk / upload-defs.mk.

Signed-off-by: Jan Lindemann <jan@janware.com>
2019-01-08 07:26:59 +00:00
f502fcd9c2 defs.mk: Remove some unnecessary invocations of /bin/pwd
Signed-off-by: Jan Lindemann <jan@janware.com>
2019-01-08 07:14:44 +00:00
f28afc777c make, scripts: Add support for [pkg.provides.xxx]
Add Support for manually specifying arbitrary package capabilities in
project.conf.

Signed-off-by: Jan Lindemann <jan@janware.com>
2019-01-07 14:34:58 +00:00
c6f81d4f4c mkspec-wrapper.sh: Support for --provides-run and --provides-devel
Signed-off-by: Jan Lindemann <jan@janware.com>
2019-01-07 13:36:28 +00:00
6b740f72ff mkspec-wrappper.sh: Simplify getopt code
Signed-off-by: Jan Lindemann <jan@janware.com>
2019-01-07 10:06:00 +00:00
0cb3f38258 mkspec-wrappper.sh: Minor code beautification
Signed-off-by: Jan Lindemann <jan@janware.com>
2019-01-07 09:41:51 +00:00
559198f765 pgit.sh: Run update-descriptions after push during clone
Signed-off-by: Jan Lindemann <jan@janware.com>
2019-01-04 18:06:00 +00:00
53a75a70a7 git-srv-admin.sh: Beautify code
Signed-off-by: Jan Lindemann <jan@janware.com>
2019-01-04 18:04:17 +00:00