views:

49

answers:

0

I have the following line in a .mak file:

# http://support.microsoft.com/kb/310618
kbddvp.cab: kbddvp32.dll kbddvp64.dll kbddvp.inf launcher.exe
        cabarc -m LZX:21 n $@ $**

... which when run, executes as:

        cabarc -m LZX:21 n kbddvp.cab kbddvp32.dll kbddvp64.dll kbddvp.inf launc
her.exe

The problem is that cabarc has been deprecated in favor of makecab. I'm trying to figure out how I should modify the .mak file to run the same code that the cabarc used to run.

I'm pretty sure that I can use:

makecab /D CompressionType=LZX /D CompressionMemory=21

for the -m LZX:21 part, but I'm not sure how I can specify multiple files.

It says in the documentation that I need to create a directives file, which I created as makecab-dir.ddf:

.OPTION EXPLICIT     ; Generate errors 
.Set CabinetNameTemplate=kbddvp.cab       
.set DiskDirectoryTemplate=
.Set CompressionType=LZX
.Set CompressionMemory=21
.Set UniqueFiles="OFF"
.Set Cabinet=on
kbddvp32.dll
kbddvp64.dll
kbddvp.inf
launcher.exe

I took some lines from this page. Now I'm guessing that I can run:

makecab /F makecab-dir.ddf

... and it would do the exact same thing that the original statement did.

Note: I don't know anything about cab files, I'm just trying to build an open source project.

I'm hoping that someone who is familiar with cab files can double check what I did and make sure I didn't miss anything.

It was hard to find the documentation for both utilites, but I found them here. The files are named CABARC.DOC and MAKECAB.DOC.

Now to update the .mak file, I'm guessing I need to use:

kbddvp.cab: kbddvp32.dll kbddvp64.dll kbddvp.inf launcher.exe
        makecab /F makcab-dir.ddf