tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

makedata.mak (5458B)


      1 # Copyright (C) 2016 and later: Unicode, Inc. and others.
      2 # License & terms of use: http://www.unicode.org/copyright.html
      3 #**********************************************************************
      4 #* Copyright (C) 1999-2008, International Business Machines Corporation
      5 #* and others.  All Rights Reserved.
      6 #**********************************************************************
      7 # nmake file for creating data files on win32
      8 # invoke with
      9 # nmake /f makedata.mak icup=<path_to_icu_instalation> [Debug|Release]
     10 #
     11 #   12/10/1999  weiv    Created
     12 
     13 #If no config, we default to debug
     14 !IF "$(CFG)" == ""
     15 CFG=Debug
     16 !MESSAGE No configuration specified. Defaulting to common - Win32 Debug.
     17 !ENDIF
     18 
     19 #Here we test if a valid configuration is given
     20 !IF "$(CFG)" != "Release" && "$(CFG)" != "release" && "$(CFG)" != "Debug" && "$(CFG)" != "debug" && "$(CFG)" != "x86\Release" && "$(CFG)" != "x86\Debug" && "$(CFG)" != "x64\Release" && "$(CFG)" != "x64\Debug" && "$(CFG)" != "ARM\Release" && "$(CFG)" != "ARM\Debug" && "$(CFG)" != "ARM64\Release" && "$(CFG)" != "ARM64\Debug"
     21 !MESSAGE Invalid configuration "$(CFG)" specified.
     22 !MESSAGE You can specify a configuration when running NMAKE
     23 !MESSAGE by defining the macro CFG on the command line. For example:
     24 !MESSAGE
     25 !MESSAGE NMAKE /f "makedata.mak" CFG="Debug"
     26 !MESSAGE
     27 !MESSAGE Possible choices for configuration are:
     28 !MESSAGE
     29 !MESSAGE "Release"
     30 !MESSAGE "Debug"
     31 !MESSAGE
     32 !ERROR An invalid configuration is specified.
     33 !ENDIF
     34 
     35 #Let's see if user has given us a path to ICU
     36 #This could be found according to the path to makefile, but for now it is this way
     37 !IF "$(ICUP)"==""
     38 !ERROR Can't find path!
     39 !ENDIF
     40 !MESSAGE ICU path is $(ICUP)
     41 
     42 RESNAME=uconvmsg
     43 RESDIR=resources
     44 RESFILES=resfiles.mk
     45 ICUDATA=$(ICUP)\data
     46 
     47 DLL_OUTPUT=.\$(CFG)
     48 # set the following to 'static' or 'dll' depending
     49 PKGMODE=static
     50 
     51 ICD=$(ICUDATA)^\
     52 DATA_PATH=$(ICUP)\data^\
     53 
     54 NATIVE_ARM=
     55 !IF "$(PROCESSOR_ARCHITECTURE)" == "ARM64" || "$(PROCESSOR_ARCHITEW6432)" == "ARM64"
     56 NATIVE_ARM=ARM64
     57 !ELSE IF "$(PROCESSOR_ARCHITECTURE)" == "ARM" || "$(PROCESSOR_ARCHITEW6432)" == "ARM"
     58 NATIVE_ARM=ARM
     59 !ENDIF
     60 
     61 # Use the x64 tools for building ARM and ARM64.
     62 # Note: This is similar to the TOOLS CFG PATH in source\data\makedata.mak
     63 !IF "$(NATIVE_ARM)" == ""
     64 !IF "$(CFG)" == "x64\Release" || "$(CFG)" == "x64\Debug" || "$(CFG)" == "ARM\Release" || "$(CFG)" == "ARM\Debug" || "$(CFG)" == "ARM64\Release"  || "$(CFG)" == "ARM64\Debug"
     65 ICUTOOLS=$(ICUP)\bin64
     66 PATH = $(ICUP)\bin64;$(PATH)
     67 !ELSE
     68 ICUTOOLS=$(ICUP)\bin
     69 PATH = $(ICUP)\bin;$(PATH)
     70 !ENDIF
     71 !ELSE
     72 !IF "$(CFG)" == "ARM\Release" || "$(CFG)" == "ARM\Debug"
     73 ICUTOOLS=$(ICUP)\binARM
     74 PATH = $(ICUP)\binARM;$(PATH)
     75 !ELSE
     76 ICUTOOLS=$(ICUP)\binARM64
     77 PATH = $(ICUP)\binARM64;$(PATH)
     78 !ENDIF
     79 !ENDIF
     80 
     81 # If building ARM/ARM, then we need to pass the arch as an argument.
     82 EXTRA_PKGDATA_ARGUMENTS=
     83 !IF "$(CFG)" == "x64\Release" || "$(CFG)" == "x64\Debug"
     84 EXTRA_PKGDATA_ARGUMENTS=-a X64
     85 !ENDIF
     86 !IF "$(CFG)" == "Release" || "$(CFG)" == "release" || "$(CFG)" == "Debug" || "$(CFG)" == "debug" || "$(CFG)" == "x86\Release" || "$(CFG)" == "x86\Debug"
     87 EXTRA_PKGDATA_ARGUMENTS=-a X86
     88 !ENDIF
     89 !IF "$(CFG)" == "ARM\Release" || "$(CFG)" == "ARM\Debug"
     90 EXTRA_PKGDATA_ARGUMENTS=-a ARM
     91 !ENDIF
     92 !IF "$(CFG)" == "ARM64\Release" || "$(CFG)" == "ARM64\Debug"
     93 EXTRA_PKGDATA_ARGUMENTS=-a ARM64
     94 !ENDIF
     95 
     96 # Make sure the necessary tools exist before continuing. (This is to prevent cryptic errors from NMAKE).
     97 !IF !EXISTS($(ICUTOOLS)\pkgdata.exe)
     98 !MESSAGE Unable to find "$(ICUTOOLS)\pkgdata.exe"
     99 !ERROR The tool 'pkgdata.exe' does not exist! (Have you built all of ICU yet?).
    100 !IF "$(CFG)" == "ARM\Release" || "$(CFG)" == "ARM\Debug" || "$(CFG)" == "ARM64\Release" || "$(CFG)" == "ARM64\Debug"
    101 !ERROR Note that the ARM and ARM64 builds require building x64 first.
    102 !ENDIF
    103 !ENDIF
    104 !IF !EXISTS($(ICUTOOLS)\genrb.exe)
    105 !MESSAGE Unable to find "$(ICUTOOLS)\genrb.exe"
    106 !ERROR The tool 'genrb.exe' does not exist! (Have you built all of ICU yet?).
    107 !IF "$(CFG)" == "ARM\Release" || "$(CFG)" == "ARM\Debug" || "$(CFG)" == "ARM64\Release" || "$(CFG)" == "ARM64\Debug"
    108 !ERROR Note that the ARM and ARM64 builds require building x64 first.
    109 !ENDIF
    110 !ENDIF
    111 
    112 # Suffixes for data files
    113 .SUFFIXES : .ucm .cnv .dll .dat .res .txt .c
    114 
    115 # We're including a list of resource files.
    116 FILESEPCHAR=
    117 
    118 !IF EXISTS("$(RESFILES)")
    119 !INCLUDE "$(RESFILES)"
    120 !ELSE
    121 !ERROR ERROR: cannot find "$(RESFILES)"
    122 !ENDIF
    123 RES_FILES = $(RESSRC:.txt=.res)
    124 RB_FILES = resources\$(RES_FILES:.res =.res resources\)
    125 RESOURCESDIR=
    126 
    127 # This target should build all the data files
    128 !IF "$(PKGMODE)" == "dll"
    129 OUTPUT = "$(DLL_OUTPUT)\$(RESNAME).dll"
    130 !ELSE
    131 OUTPUT = "$(DLL_OUTPUT)\$(RESNAME).lib"
    132 !ENDIF
    133 
    134 ALL : $(OUTPUT)
    135    @echo All targets are up to date (mode $(PKGMODE))
    136 
    137 
    138 # invoke pkgdata - static
    139 "$(DLL_OUTPUT)\$(RESNAME).lib" : $(RB_FILES) $(RESFILES)
    140    @echo Building $(RESNAME).lib
    141    @"$(ICUTOOLS)\pkgdata" -f -v -m static -c -p $(RESNAME) -d "$(DLL_OUTPUT)" $(EXTRA_PKGDATA_ARGUMENTS) -s "$(RESDIR)" <<pkgdatain.txt
    142 $(RES_FILES:.res =.res
    143 )
    144 <<KEEP
    145 
    146 # This is to remove all the data files
    147 CLEAN :
    148    -@erase "$(RB_FILES)"
    149    -@erase "$(CFG)\*uconvmsg*.*"
    150    -@"$(ICUTOOLS)\pkgdata" -f --clean -v -m static -c -p $(RESNAME) -d "$(DLL_OUTPUT)" $(EXTRA_PKGDATA_ARGUMENTS) -s "$(RESDIR)" pkgdatain.txt
    151 
    152 # Inference rule for creating resource bundles
    153 {$(RESDIR)}.txt{$(RESDIR)}.res:
    154    @echo Making Resource Bundle files
    155    "$(ICUTOOLS)\genrb" -s $(@D) -d $(@D) $(?F)
    156 
    157 $(RESSRC) : {"$(ICUTOOLS)"}genrb.exe