github.com/anchore/syft@v1.38.2/syft/pkg/cataloger/java/test-fixtures/java-builds/Makefile (about)

     1  PKGSDIR=packages
     2  FINGERPRINT_FILE=$(PKGSDIR).fingerprint
     3  
     4  ifndef PKGSDIR
     5      $(error PKGSDIR is not set)
     6  endif
     7  
     8  
     9  .DEFAULT_GOAL := fixtures
    10  
    11  # requirement 1: 'fixtures' goal to generate any and all test fixtures
    12  fixtures: jars archives native-image
    13  
    14  # requirement 2: 'fingerprint' goal to determine if the fixture input that indicates any existing cache should be busted
    15  fingerprint: $(FINGERPRINT_FILE)
    16  
    17  jars: $(PKGSDIR)/example-java-app-maven-0.1.0.jar $(PKGSDIR)/example-java-app-gradle-0.1.0.jar $(PKGSDIR)/example-jenkins-plugin.hpi $(PKGSDIR)/spring-boot-0.0.1-SNAPSHOT.jar
    18  
    19  archives: $(PKGSDIR)/example-java-app-maven-0.1.0.zip $(PKGSDIR)/example-java-app-maven-0.1.0.tar $(PKGSDIR)/example-java-app-maven-0.1.0.tar.gz $(PKGSDIR)/example-java-app-maven-0.1.0.tgz
    20  
    21  native-image: $(PKGSDIR)/example-java-app $(PKGSDIR)/gcc-amd64-darwin-exec-debug
    22  
    23  # jars within archives...
    24  
    25  $(PKGSDIR)/example-java-app-maven-0.1.0.zip: $(PKGSDIR)/example-java-app-maven-0.1.0.jar
    26  	zip $(PKGSDIR)/example-java-app-maven-0.1.0.zip $(PKGSDIR)/example-java-app-maven-0.1.0.jar
    27  
    28  $(PKGSDIR)/example-java-app-maven-0.1.0.tar: $(PKGSDIR)/example-java-app-maven-0.1.0.jar
    29  	tar -cvf $(PKGSDIR)/example-java-app-maven-0.1.0.tar $(PKGSDIR)/example-java-app-maven-0.1.0.jar
    30  
    31  $(PKGSDIR)/example-java-app-maven-0.1.0.tar.gz: $(PKGSDIR)/example-java-app-maven-0.1.0.jar
    32  	tar -czvf $(PKGSDIR)/example-java-app-maven-0.1.0.tar.gz $(PKGSDIR)/example-java-app-maven-0.1.0.jar
    33  
    34  $(PKGSDIR)/example-java-app-maven-0.1.0.tgz: $(PKGSDIR)/example-java-app-maven-0.1.0.tar.gz
    35  	tar -czf $(PKGSDIR)/example-java-app-maven-0.1.0.tgz $(PKGSDIR)/example-java-app-maven-0.1.0.jar
    36  
    37  # Nested jar...
    38  
    39  $(PKGSDIR)/spring-boot-0.0.1-SNAPSHOT.jar:
    40  	./build-example-sb-app-nestedjar.sh $(PKGSDIR)
    41  
    42  clean-nestedjar:
    43  	rm -rf	example-sb-app/target
    44  
    45  # Maven...
    46  $(PKGSDIR)/example-java-app-maven-0.1.0.jar:
    47  	./build-example-java-app-maven.sh $(PKGSDIR)
    48  
    49  clean-maven:
    50  	rm -rf	example-java-app/\? \
    51  			example-java-app/target \
    52  			example-java-app/dependency-reduced-pom.xml
    53  
    54  # Gradle...
    55  $(PKGSDIR)/example-java-app-gradle-0.1.0.jar:
    56  	./build-example-java-app-gradle.sh $(PKGSDIR)
    57  
    58  clean-gradle:
    59  	rm -rf	example-java-app/.gradle \
    60  			example-java-app/build
    61  
    62  # Jenkins plugin
    63  $(PKGSDIR)/example-jenkins-plugin.hpi , $(PKGSDIR)/example-jenkins-plugin.jar:
    64  	./build-example-jenkins-plugin.sh $(PKGSDIR)
    65  
    66  clean-jenkins:
    67  	rm -rf	example-jenkins-plugin/target \
    68  			example-jenkins-plugin/dependency-reduced-pom.xml \
    69  			example-jenkins-plugin/*.exploding
    70  
    71  # Native Image...
    72  $(PKGSDIR)/example-java-app: $(PKGSDIR)/example-java-app-maven-0.1.0.jar
    73  	./build-example-java-app-native-image.sh $(PKGSDIR)
    74  
    75  $(PKGSDIR)/gcc-amd64-darwin-exec-debug:
    76  	./build-example-macho-binary.sh $(PKGSDIR)
    77  
    78  # requirement 3: we always need to recalculate the fingerprint based on source regardless of any existing fingerprint
    79  .PHONY: $(FINGERPRINT_FILE)
    80  $(FINGERPRINT_FILE):
    81  	@find example-* build-* Makefile -type f -exec sha256sum {} \; | sort -k2 > $(FINGERPRINT_FILE)
    82  	@#cat $(FINGERPRINT_FILE) | sha256sum | awk '{print $$1}'
    83  
    84  # requirement 4: 'clean' goal to remove all generated test fixtures
    85  clean: clean-examples
    86  	rm -rf $(PKGSDIR) $(FINGERPRINT_FILE)
    87  
    88  clean-examples: clean-gradle clean-maven clean-jenkins clean-nestedjar
    89  
    90  .PHONY: maven gradle clean clean-gradle clean-maven clean-jenkins clean-examples clean-nestedjar jars archives