7
7
# # # GNU Lesser General Public License Version 2.1 ##
8
8
# # # (see LICENSE file for the text of the license) ##
9
9
# #########################################################################
10
- # # GNUMakefile for Coq 8.17.0
10
+ # # GNUMakefile for Coq 8.19.1
11
11
12
12
# For debugging purposes (must stay here, don't move below)
13
13
INITIAL_VARS := $(.VARIABLES )
@@ -278,7 +278,7 @@ COQDOCLIBS?=$(COQLIBS_NOML)
278
278
# The version of Coq being run and the version of coq_makefile that
279
279
# generated this makefile
280
280
COQ_VERSION: =$(shell $(COQC ) --print-version | cut -d " " -f 1)
281
- COQMAKEFILE_VERSION: =8.17.0
281
+ COQMAKEFILE_VERSION: =8.19.1
282
282
283
283
# COQ_SRC_SUBDIRS is for user-overriding, usually to add
284
284
# `user-contrib/Foo` to the includes, we keep COQCORE_SRC_SUBDIRS for
@@ -293,18 +293,26 @@ CAMLDOCFLAGS:=$(filter-out -annot, $(filter-out -bin-annot, $(CAMLFLAGS)))
293
293
CAMLFLAGS+ =$(OCAMLWARN )
294
294
295
295
ifneq (,$(TIMING ) )
296
- TIMING_ARG =-time
297
- ifeq (after,$(TIMING ) )
298
- TIMING_EXT =after-timing
296
+ ifeq (after,$(TIMING))
297
+ TIMING_EXT =after-timing
298
+ else
299
+ ifeq (before,$(TIMING))
300
+ TIMING_EXT =before-timing
301
+ else
302
+ TIMING_EXT =timing
303
+ endif
304
+ endif
305
+ TIMING_ARG =-time-file $< .$(TIMING_EXT )
299
306
else
300
- ifeq (before,$(TIMING ) )
301
- TIMING_EXT =before-timing
302
- else
303
- TIMING_EXT =timing
304
- endif
307
+ TIMING_ARG =
305
308
endif
309
+
310
+ ifneq (,$(PROFILING ) )
311
+ PROFILE_ARG =-profile $< .prof.json
312
+ PROFILE_ZIP =gzip $< .prof.json
306
313
else
307
- TIMING_ARG =
314
+ PROFILE_ARG =
315
+ PROFILE_ZIP =true
308
316
endif
309
317
310
318
# Files #######################################################################
@@ -592,13 +600,24 @@ beautify: $(BEAUTYFILES)
592
600
# There rules can be extended in Makefile.local
593
601
# Extensions can't assume when they run.
594
602
603
+ # We use $(file) to avoid generating a very long command string to pass to the shell
604
+ # (cf https://coq.zulipchat.com/#narrow/stream/250632-Coq-Platform-devs-.26-users/topic/Strange.20command.20length.20limit.20on.20Linux)
605
+ # However Apple ships old make which doesn't have $(file) so we need a fallback
606
+ $(file >.hasfile,1)
607
+ HASFILE: =$(shell if [ -e .hasfile ]; then echo 1; rm .hasfile; fi)
608
+
609
+ MKFILESTOINSTALL = $(if $(HASFILE ) ,$(file >.filestoinstall,$(FILESTOINSTALL ) ) ,\
610
+ $(shell rm -f .filestoinstall) \
611
+ $(foreach x,$(FILESTOINSTALL ) ,$(shell printf '% s\n' "$x" >> .filestoinstall) ) )
612
+
595
613
# findlib needs the package to not be installed, so we remove it before
596
614
# installing it (see the call to findlib_remove)
597
615
install : META
598
- $(HIDE ) code=0; for f in $( FILESTOINSTALL) ; do\
616
+ @$(MKFILESTOINSTALL )
617
+ $(HIDE ) code=0; for f in $$ (cat .filestoinstall); do\
599
618
if ! [ -f " $$ f" ]; then >&2 echo $$ f does not exist; code=1; fi \
600
619
done ; exit $$ code
601
- $(HIDE ) for f in $( FILESTOINSTALL ) ; do\
620
+ $(HIDE ) for f in $$( cat .filestoinstall ) ; do\
602
621
df=" ` $( COQMKFILE) -destination-of " $$ f" $( COQLIBS) ` " ; \
603
622
if [ " $$ ?" != " 0" -o -z " $$ df" ]; then\
604
623
echo SKIP " $$ f" since it has no logical path; \
@@ -611,6 +630,7 @@ install: META
611
630
$(call findlib_remove)
612
631
$(call findlib_install, META $(FINDLIBFILESTOINSTALL ) )
613
632
$(HIDE )$(MAKE ) install-extra -f " $( SELF) "
633
+ @rm -f .filestoinstall
614
634
install-extra ::
615
635
@# Extension point
616
636
.PHONY : install install-extra
@@ -642,18 +662,20 @@ install-doc:: html mlihtml
642
662
643
663
uninstall ::
644
664
@# Extension point
665
+ @$(MKFILESTOINSTALL )
645
666
$(call findlib_remove)
646
- $(HIDE ) for f in $( FILESTOINSTALL ) ; do \
667
+ $(HIDE ) for f in $$( cat .filestoinstall ) ; do \
647
668
df=" ` $( COQMKFILE) -destination-of " $$ f" $( COQLIBS) ` " && \
648
669
instf=" $( COQLIBINSTALL) /$$ df/` basename $$ f` " && \
649
670
rm -f " $$ instf" && \
650
671
echo RM " $$ instf" ; \
651
672
done
652
- $(HIDE ) for f in $( FILESTOINSTALL ) ; do \
673
+ $(HIDE ) for f in $$( cat .filestoinstall ) ; do \
653
674
df=" ` $( COQMKFILE) -destination-of " $$ f" $( COQLIBS) ` " && \
654
675
echo RMDIR " $( COQLIBINSTALL) /$$ df/" && \
655
676
(rmdir " $( COQLIBINSTALL) /$$ df/" 2> /dev/null || true); \
656
677
done
678
+ @rm -f .filestoinstall
657
679
658
680
.PHONY : uninstall
659
681
@@ -784,12 +806,6 @@ $(filter-out $(MLLIBFILES:.mllib=.cmxs) $(MLPACKFILES:.mlpack=.cmxs) $(addsuffix
784
806
$(HIDE )$(TIMER ) $(CAMLOPTLINK ) $(CAMLDEBUG ) $(CAMLFLAGS ) $(FINDLIBPKGS ) \
785
807
-shared -o $@ $<
786
808
787
- ifneq (,$(TIMING ) )
788
- TIMING_EXTRA = > $< .$(TIMING_EXT )
789
- else
790
- TIMING_EXTRA =
791
- endif
792
-
793
809
# can't make
794
810
# https://www.gnu.org/software/make/manual/make.html#Static-Pattern
795
811
# work with multiple target rules
@@ -800,20 +816,22 @@ ifneq (,$(filter grouped-target,$(.FEATURES)))
800
816
define globvorule=
801
817
802
818
# take care to $$ variables using $< etc
803
- $(1 ) .vo $(1 ) .glob &: $(1 ) .v | $(VDFILE )
804
- $(SHOW ) COQC $(1 ) .v
805
- $(HIDE )$$(TIMER ) $(COQC ) $(COQDEBUG ) $(TIMING_ARG ) $(COQFLAGS ) $(COQLIBS ) $(1 ) .v $$(TIMING_EXTRA )
819
+ $(1 ) .vo $(1 ) .glob &: $(1 ) .v | $$(VDFILE )
820
+ $$(SHOW ) COQC $(1 ) .v
821
+ $$(HIDE )$$(TIMER ) $$(COQC ) $$(COQDEBUG ) $$(TIMING_ARG ) $$(PROFILE_ARG ) $$(COQFLAGS ) $$(COQLIBS ) $(1 ) .v
822
+ $$(HIDE )$$(PROFILE_ZIP )
806
823
ifeq ($(COQDONATIVE ) , "yes")
807
- $(SHOW)COQNATIVE $(1).vo
808
- $(HIDE)$(call TIMER,$(1).vo.native) $(COQNATIVE) $(COQLIBS) $(1).vo
824
+ $$ (SHOW)COQNATIVE $(1).vo
825
+ $$ (HIDE)$$ (call TIMER,$(1).vo.native) $$ (COQNATIVE) $ $(COQLIBS) $(1).vo
809
826
endif
810
827
811
828
endef
812
829
else
813
830
814
831
$(VOFILES ) : % .vo: % .v | $(VDFILE )
815
832
$(SHOW ) COQC $<
816
- $(HIDE )$(TIMER ) $(COQC ) $(COQDEBUG ) $(TIMING_ARG ) $(COQFLAGS ) $(COQLIBS ) $< $(TIMING_EXTRA )
833
+ $(HIDE )$(TIMER ) $(COQC ) $(COQDEBUG ) $(TIMING_ARG ) $(PROFILE_ARG ) $(COQFLAGS ) $(COQLIBS ) $<
834
+ $(HIDE )$(PROFILE_ZIP )
817
835
ifeq ($(COQDONATIVE ) , "yes")
818
836
$(SHOW)COQNATIVE $@
819
837
$(HIDE)$(call TIMER,
[email protected] ) $(COQNATIVE) $(COQLIBS) $@
0 commit comments