• Miek Gieben's avatar
    Makefile: add Windows target (#1199) · 64c3eb15
    Miek Gieben authored
    While we at it, why not add a target for Windows as well.
    
    This also introduces a VERBOSE option that defaults to -v, but it empty
    when releases so that you can actually see what you're building.
    
    Move an @echo out of shell snippet into the Makefile, as that errored
    with @echo: command not found.
    
    Sample run and resulting artifacts:
    
    ~~~
    % make -f Makefile.release build
    % find build -type f -exec file {} \;
    build/windows/amd64/coredns: PE32+ executable (console) x86-64 (stripped to external PDB), for MS Windows
    build/darwin/amd64/coredns: Mach-O 64-bit x86_64 executable, flags:<NOUNDEFS>
    build/linux/ppc64le/coredns: ELF 64-bit LSB executable, 64-bit PowerPC or cisco 7500, version 1 (SYSV), statically linked, stripped
    build/linux/amd64/coredns: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), statically linked, stripped
    build/linux/arm/coredns: ELF 32-bit LSB executable, ARM, EABI5 version 1 (SYSV), statically linked, stripped
    build/linux/s390x/coredns: ELF 64-bit MSB executable, IBM S/390, version 1 (SYSV), statically linked, stripped
    build/linux/arm64/coredns: ELF 64-bit LSB executable, ARM aarch64, version 1 (SYSV), statically linked, stripped
    
    % make -f Makefile.release tar
    % find release -type f | sort
    release/coredns_0.9.9_darwin_amd64.tgz
    release/coredns_0.9.9_linux_amd64.tgz
    release/coredns_0.9.9_linux_arm64.tgz
    release/coredns_0.9.9_linux_arm.tgz
    release/coredns_0.9.9_linux_ppc64le.tgz
    release/coredns_0.9.9_linux_s390x.tgz
    release/coredns_0.9.9_windows_amd64.tgz
    ~~~
    64c3eb15
Makefile.release 4.17 KB