Merge dd0933134b5ed0283a5b803163d8e81c25866022 into f4a1aceb8ca7198b11447d6e1885ce70feb2dcc6

This commit is contained in:
Gilles Peskine 2026-07-27 21:03:28 +01:00 committed by GitHub
commit dc5f4a85e6
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
5 changed files with 50 additions and 6 deletions

View File

@ -56,12 +56,18 @@ programs/%: FORCE
tests/%: FORCE
$(MAKE) -C tests $*
.PHONY: generated_files
.PHONY: generated_files list_generated_files
generated_files: library/generated_files
generated_files: programs/generated_files
generated_files: tests/generated_files
generated_files: visualc_files
list_generated_files:
@$(MAKE) --no-print-directory -C library list_generated_files | sed 's!^!library/!'
@$(MAKE) --no-print-directory -C programs list_generated_files | sed 's!^!programs/!'
@$(MAKE) --no-print-directory -C tests list_generated_files | sed 's!^!tests/!'
@scripts/generate_visualc_files.pl --list
# Set GEN_FILES to the empty string to disable dependencies on generated
# source files. Then `make generated_files` will only build files that
# are missing, it will not rebuilt files that are present but out of date.
@ -86,8 +92,15 @@ gen_file_dep = |
endif
.PHONY: visualc_files
VISUALC_FILES = visualc/VS2017/mbedTLS.sln visualc/VS2017/mbedTLS.vcxproj
# TODO: $(app).vcxproj for each $(app) in programs/
ifdef GEN_FILES
# Complete list. Requires perl, so make sure we don't execute this line
# when GEN_FILES is off.
VISUALC_FILES := $(shell $(PERL) scripts/generate_visualc_files.pl --list)
else
# Incomplete list, just enough to generate the files if they're all absent
# but not to generate files for new apps.
VISUALC_FILES := visualc/VS2017/mbedTLS.sln visualc/VS2017/mbedTLS.vcxproj
endif
visualc_files: $(VISUALC_FILES)
# Ensure that the .c files that generate_visualc_files.pl enumerates are

View File

@ -341,8 +341,10 @@ libmbedcrypto.dll: $(OBJS_CRYPTO)
echo " CC $<"
$(CC) $(LOCAL_CFLAGS) $(CFLAGS) -S -o $@ -c $<
.PHONY: generated_files
.PHONY: generated_files list_generated_files
generated_files: $(GENERATED_FILES)
list_generated_files:
@for x in $(GENERATED_FILES); do echo "$$x"; done
# See root Makefile
GEN_FILES ?= yes

View File

@ -131,9 +131,11 @@ fuzz: ${MBEDLIBS} ${MBEDTLS_TEST_OBJS}
${MBEDTLS_TEST_OBJS}:
$(MAKE) -C ../tests mbedtls_test
.PHONY: generated_files
GENERATED_FILES = psa/psa_constant_names_generated.c test/query_config.c
.PHONY: generated_files list_generated_files
generated_files: $(GENERATED_FILES)
list_generated_files:
@for x in $(GENERATED_FILES); do echo "$$x"; done
psa/psa_constant_names_generated.c: $(gen_file_dep) ../scripts/generate_psa_constants.py
psa/psa_constant_names_generated.c: $(gen_file_dep) ../include/psa/crypto_values.h

View File

@ -13,6 +13,12 @@ use warnings;
use strict;
use Digest::MD5 'md5_hex';
my $help = <<EOF;
Usage: $0 [--help|--list]
Generate Visual Studio solutions and project files from templates.
Must be run from the Mbed TLS root or the scripts directory.
EOF
my $vsx_dir = "visualc/VS2017";
my $vsx_ext = "vcxproj";
my $vsx_app_tpl_file = "scripts/data_files/vs2017-app-template.$vsx_ext";
@ -265,6 +271,25 @@ sub main {
check_dirs or die "Must be run from Mbed TLS root or scripts dir\n";
}
if (@ARGV == 0) {
# normal operation, code below
} elsif (@ARGV == 1 && $ARGV[0] eq '--help') {
print $help;
exit;
} elsif (@ARGV == 1 && $ARGV[0] eq '--list') {
my @app_list = get_app_list();
my @project_list = map {s!.*/!!; "$_.$vsx_ext"} @app_list;
foreach (@project_list) {
print "$vsx_dir/$_\n";
}
print "$vsx_main_file\n";
print "$vsx_sln_file\n";
exit;
} else {
print STDERR $help;
exit 120;
}
# Remove old files to ensure that, for example, project files from deleted
# apps are not kept
del_vsx_files();

View File

@ -72,8 +72,10 @@ opt-testcases/tls13-compat.sh: ../framework/scripts/generate_tls13_compat_tests.
GENERATED_FILES += opt-testcases/tls13-compat.sh
ssl-opt: opt-testcases/tls13-compat.sh
.PHONY: generated_files
.PHONY: generated_files list_generated_files
generated_files: $(GENERATED_FILES)
list_generated_files:
@for x in $(GENERATED_FILES); do echo "$$x"; done
# generate_bignum_tests.py and generate_psa_tests.py spend more time analyzing
# inputs than generating outputs. Its inputs are the same no matter which files