Subj : Changes in husky sources To : All From : husky inspector Date : Fri Nov 12 2021 01:00 am Legend: (A) Added, (C) Copied, (D) Deleted, (M) Modified, (R) Renamed, (T) Type changed, (U) Unmerged, (X) Unknown, (B) Pairing Broken =========================== huskybse: simplify conditions for printing error messages Author: Michael Dukelsky Date: 2021-11-11 21:51:33 +0300 Committed by: Michael Dukelsky Files: M Makefile =========================== huskybse: replace $(or ) of filters with one filter Author: Michael Dukelsky Date: 2021-11-11 21:31:59 +0300 Committed by: Michael Dukelsky Files: M Makefile =========================== huskybse: generate info installation variables/rules Generate info_PREREQ, info_RECIPE, uninfo_RECIPE and *.info.gz rules in the gen_subproject function. Later these rules are used by common code for info installation/uninstallation. Thanks to Zhenja Kaliuta 2:4500/1.59 Author: Michael Dukelsky Date: 2021-11-11 21:08:56 +0300 Committed by: Michael Dukelsky Files: M Makefile =========================== huskybse: get rid of need_* variables It's more convenient to use value as is (blank or project name) instead of 0/1 check. Thanks to Zhenja Kaliuta 2:4500/1.59 Author: Michael Dukelsky Date: 2021-11-11 21:07:44 +0300 Committed by: Michael Dukelsky Files: M Makefile =========================== huskybse: set common variables inside the gen_subproject function Requires escaping $ to delay variable evaluation to eval phase, they are blank during call phase. We switched the overwrites which use ROOTDIR to lazy evaluation since ROOTDIR is set later. Thanks to Zhenja Kaliuta 2:4500/1.59 Author: Michael Dukelsky Date: 2021-11-11 21:06:31 +0300 Committed by: Michael Dukelsky Files: M Makefile =========================== huskybse: add per-subproject prerequisites to the gen_subproject Move *_PREREQ filling to the generating function. UNDOCDIR_PREREQ is added only for 4 subprojects, so add special _UNDOCDIR_PREREQ variable for them. Thanks to Zhenja Kaliuta 2:4500/1.59 Author: Michael Dukelsky Date: 2021-11-11 21:05:16 +0300 Committed by: Michael Dukelsky Files: M Makefile =========================== huskybse: move per-subproject generation right before rules The idea is to have per-subproject variables to be generated from the function. It must follow special per-subproject variables section. Since it also generates _update rules, the first of them becomes the default, so set .DEFAULT_GOAL. Setting MAKECMDGOALS affects the code but does not affect default goal selection. Thanks to Zhenja Kaliuta 2:4500/1.59 Author: Michael Dukelsky Date: 2021-11-11 21:03:07 +0300 Committed by: Michael Dukelsky Files: M Makefile =========================== huskybse: assign $(space) to huskybse_DATEFILES to prevent using the default *.h *.c which do not exist Author: Michael Dukelsky Date: 2021-11-11 21:01:55 +0300 Committed by: Michael Dukelsky Files: M Makefile =========================== huskybse: replace multiple Makefile includes by one with $(patsubst ...) Author: Michael Dukelsky Date: 2021-11-11 21:00:42 +0300 Committed by: Michael Dukelsky Files: M Makefile =========================== huskybse: use list of enabled subprojects Generate list of enabled subprojects and use it for rule generation. Thanks to Zhenja Kaliuta 2:4500/1.59 Author: Michael Dukelsky Date: 2021-11-11 20:58:05 +0300 Committed by: Michael Dukelsky Files: M Makefile =========================== huskybse: get rid of date_make2shell function There is no point for the function anymore, the code is executed every time when gen_date_selection is called but extra call makes it less readable. Move it to gen_date_selection. Thanks to Zhenja Kaliuta 2:4500/1.59 Author: Michael Dukelsky Date: 2021-11-11 20:56:53 +0300 Committed by: Michael Dukelsky Files: M Makefile =========================== huskybse: remove _get_date rule After generalization there is no point to have a separate rule for mdate, move it to _rule. Thanks to Zhenja Kaliuta 2:4500/1.59 Author: Michael Dukelsky Date: 2021-11-11 20:55:34 +0300 Committed by: Michael Dukelsky Files: M Makefile =========================== huskybse: generate update rule Finish generalization of update rules, create gen_subproject function and call it for all the subprojects with eval to generate main update rule. Thanks to Zhenja Kaliuta 2:4500/1.59 Author: Michael Dukelsky Date: 2021-11-11 20:53:57 +0300 Committed by: Michael Dukelsky Files: M Makefile =========================== huskybse: use pattern rules for _glue and _get_date targets. Now, when we have mostly unified the rules, it's possible to create common pattern rules for the targets. The _update target is a bit special due to generated dependencies and pattern does not work there. So we leave it untouched by this patch. Thanks to Zhenja Kaliuta 2:4500/1.59 Author: Michael Dukelsky Date: 2021-11-11 20:51:56 +0300 Committed by: Michael Dukelsky Files: M Makefile =========================== huskybse: unify (almost) the structure of the "update" code. The current code distinguishes three types of rule sets for update targets: 1) those whose modification date (mdate) is used only for the project itself; 2) those whose mdate is used for other projects, but which do not use others' mdates; 3) those which use others' mdates to choose their own. It uses different target names for "main" target (which becomes direct dependency of update target): for 1) - _wdate 2) - _glue 3) - _cmp and a bit different rule structure (no glue for 1), cmp for 3)). From the code point of view, there is no practical benefit for this separation, just maybe self-documenting. Thanks to Zhenja Kaliuta 2:4500/1.59 Author: Michael Dukelsky Date: 2021-11-11 20:46:42 +0300 Committed by: Michael Dukelsky Files: M Makefile =========================== huskybse: make a function get_mdate which takes one parameter - a subproject name and looks up in git the latest modification date of the code files. For most of the subprojects it is $(_H_DIR)*.h $(_SRC_DIR)$(DIRSEP)*.c, so use it as the default variable overwritable by _DATEFILES. Thanks to Zhenja Kaliuta 2:4500/1.59 Author: Michael Dukelsky Date: 2021-11-11 20:44:30 +0300 Committed by: Michael Dukelsky Files: M Makefile =========================== huskybse: Implement gen_date_selection function and use it in *_cmp targets to generate shell code selecting the latest date from dependent subprojects. List the projects used to calculate date in the variables instead of directly in the rules. It helps to remove hptzip condition in hpt and htick rules and will help later to make a universal rule. Since need_hptzip variable is 0/1, take another one, HPTZIP (blank or hptzip) to use in the lists. The list variables must be lazy for that reason. Keep hpt and htick *_cmp indention to make the patch more readable. Thanks to Zhenja Kaliuta 2:4500/1.59 Author: Michael Dukelsky Date: 2021-11-11 20:42:46 +0300 Committed by: Michael Dukelsky Files: M Makefile =========================== huskybse: add cvsdate.h creation to util subproject. Unify cvsdate.h creation and move it to a function. There are 2 types of it: - using make variable when date is taken from the subproject only; - using shell variable when date is selected from several subprojects. Use only the latter one. To do it the rules which used the former way need to initialize shell variables with the make ones. Do it with a helper function (it is easier to replace). For all the subprojects except hptsqfix the file is created in the root directory, but in hptsqfix it's in the headers' one. So, make it possible to list exceptions in a variable .CVSDATEDIR. Thanks to Zhenja Kaliuta 2:4500/1.59 Author: Michael Dukelsky Date: 2021-11-11 20:39:27 +0300 Committed by: Michael Dukelsky Files: M Makefile =========================== huskybse: replace all "_update" rules by one static pattern rule. Thanks to Zhenja Kaliuta 2:4500/1.59 Author: Michael Dukelsky Date: 2021-11-11 20:36:55 +0300 Committed by: Michael Dukelsky Files: M Makefile =========================== huskybse: use update condition only for "include /Makefile" since it uses cvsdate.h created by make update. Thanks to Zhenja Kaliuta 2:4500/1.59 Author: Michael Dukelsky Date: 2021-11-11 20:33:32 +0300 Committed by: Michael Dukelsky Files: M Makefile --- hpt/lnx 1.9.0 * Origin: Moscow, Russia (2:5020/1042.3) .