Skip to content

Commit

Permalink
v1.0.3
Browse files Browse the repository at this point in the history
  • Loading branch information
alex-free committed Sep 4, 2024
1 parent 0dec614 commit a26d612
Show file tree
Hide file tree
Showing 10 changed files with 403 additions and 174 deletions.
147 changes: 147 additions & 0 deletions Makefile
Original file line number Diff line number Diff line change
@@ -0,0 +1,147 @@
# EzRe v1.0.2 GNUMakefile for Linux/Windows by Alex Free

include variables.mk

COMPILER_FLAGS+=-DVERSION=\"$(VERSION)\"

$(PROGRAM): clean
mkdir -p $(BUILD_DIR)

# OPTIONAL, not default: Build C libraries to be used by the target executable. To enable this, you must replace `library-file*` with the actual name of the library, and you must set `BUILD_LIB=YES` in `variables.mk`.
ifeq ("$(BUILD_LIB)","YES")
$(COMPILER) $(COMPILER_FLAGS_LIB) -c library-files-dir/library-file.c -o $(BUILD_DIR)/library-file-object.o
$(AR) rcs $(BUILD_DIR)/library-file-archive.a $(BUILD_DIR)/library-file-object.o

ifeq ($(strip $(EXECUTABLE_NAME)),)
$(COMPILER) $(COMPILER_FLAGS) $(SOURCE_FILES) -L./$(BUILD_DIR) -llibrary-file -o $(BUILD_DIR)/$(PROGRAM)
else
$(COMPILER) $(COMPILER_FLAGS) $(SOURCE_FILES) -L./$(BUILD_DIR) -llibrary-file -o $(BUILD_DIR)/$(EXECUTABLE_NAME)
endif

else # Default: Does not build any C libraries. `BUILD_LIB=NO` in `variables.mk`.
mkdir -p $(BUILD_DIR)
ifeq ($(strip $(EXECUTABLE_NAME)),)
$(COMPILER) $(COMPILER_FLAGS) $(SOURCE_FILES) -o $(BUILD_DIR)/$(PROGRAM)
else
$(COMPILER) $(COMPILER_FLAGS) $(SOURCE_FILES) -o $(BUILD_DIR)/$(EXECUTABLE_NAME)
endif

endif

.PHONY: deps-apt
deps-apt:
sudo apt update
sudo apt install --yes $(BUILD_DEPENDS_APT)

.PHONY: deps-dnf
deps-dnf:
sudo dnf update
sudo dnf -y install $(BUILD_DEPENDS_DNF)

.PHONY: clean
clean:
rm -rf $(BUILD_DIR)/$(PROGRAM).exe $(BUILD_DIR)/$(PROGRAM) $(BUILD_DIR)/*.o $(BUILD_DIR)/*.a

.PHONY: clean-build
clean-build:
rm -rf $(BUILD_DIR)

.PHONY: linux-i386
linux-i386: clean
make $(PROGRAM) COMPILER_FLAGS='$(COMPILER_FLAGS_LINUX_X86) $(COMPILER_FLAGS)' COMPILER_FLAGS_LIB='$(COMPILER_FLAGS_LINUX_X86) $(COMPILER_FLAGS_LIB)' EXECUTABLE_NAME='$(PROGRAM).i386'

.PHONY: linux-x86_64
linux-x86_64: clean
make $(PROGRAM) EXECUTABLE_NAME='$(PROGRAM).x86_64'

.PHONY: windows-i686
windows-i686: clean
make $(PROGRAM) COMPILER=$(WINDOWS_I686_COMPILER) EXECUTABLE_NAME='$(PROGRAM).i686.exe' AR=$(WINDOWS_I686_AR)

.PHONY: windows-x86_64
windows-x86_64: clean
make $(PROGRAM) COMPILER=$(WINDOWS_X86_64_COMPILER) EXECUTABLE_NAME='$(PROGRAM).x86_64.exe' AR=$(WINDOWS_X86_64_AR)

.PHONY: release
release:
rm -rf $(BUILD_DIR)/$(RELEASE_BASE_NAME)-$(VERSION)-$(PLATFORM) $(BUILD_DIR)/$(PROGRAM)-$(VERSION)-$(PLATFORM).zip
mkdir $(BUILD_DIR)/$(RELEASE_BASE_NAME)-$(VERSION)-$(PLATFORM)
ifeq ($(strip $(WINDOWS_RELEASE)),)
cp $(BUILD_DIR)/$(EXECUTABLE_NAME) $(BUILD_DIR)/$(PROGRAM)
cp -r $(BUILD_DIR)/$(PROGRAM) $(RELEASE_FILES) $(BUILD_DIR)/$(RELEASE_BASE_NAME)-$(VERSION)-$(PLATFORM)
else
cp $(BUILD_DIR)/$(EXECUTABLE_NAME) $(BUILD_DIR)/$(PROGRAM).exe
cp -r $(BUILD_DIR)/$(PROGRAM).exe $(RELEASE_FILES) $(BUILD_DIR)/$(RELEASE_BASE_NAME)-$(VERSION)-$(PLATFORM)
endif
chmod -R 777 $(BUILD_DIR)/$(RELEASE_BASE_NAME)-$(VERSION)-$(PLATFORM)
cd $(BUILD_DIR) && zip -rq $(RELEASE_BASE_NAME)-$(VERSION)-$(PLATFORM).zip $(RELEASE_BASE_NAME)-$(VERSION)-$(PLATFORM)
rm -rf $(BUILD_DIR)/$(RELEASE_BASE_NAME)-$(VERSION)-$(PLATFORM)

.PHONY: linux-i386-release
linux-i386-release: linux-i386
ifeq ($(strip $(LINUX_SPECIFIC_RELEASE_FILES)),)
make release PLATFORM='$(LINUX_I386_RELEASE_NAME_SUFFIX)' EXECUTABLE_NAME='$(PROGRAM).i386'
else
make release PLATFORM='$(LINUX_I386_RELEASE_NAME_SUFFIX)' RELEASE_FILES='$(LINUX_SPECIFIC_RELEASE_FILES) $(RELEASE_FILES)' EXECUTABLE_NAME='$(PROGRAM).i386'
endif

.PHONY: linux-x86_64-release
linux-x86_64-release: linux-x86_64
ifeq ($(strip $(LINUX_SPECIFIC_RELEASE_FILES)),)
make release PLATFORM='$(LINUX_X86_64_RELEASE_NAME_SUFFIX)' EXECUTABLE_NAME='$(PROGRAM).x86_64'
else
make release PLATFORM='$(LINUX_X86_64_RELEASE_NAME_SUFFIX)' RELEASE_FILES='$(LINUX_SPECIFIC_RELEASE_FILES) $(RELEASE_FILES)' EXECUTABLE_NAME='$(PROGRAM).x86_64'
endif

.PHONY: windows-i686-release
windows-i686-release: windows-i686
ifeq ($(strip $(WINDOWS_SPECIFIC_RELEASE_FILES)),)
make release PLATFORM='$(WINDOWS_I686_RELEASE_NAME_SUFFIX)' EXECUTABLE_NAME='$(PROGRAM).i686.exe' WINDOWS_RELEASE=true
else
make release PLATFORM='$(WINDOWS_I686_RELEASE_NAME_SUFFIX)' RELEASE_FILES='$(WINDOWS_SPECIFIC_RELEASE_FILES) $(RELEASE_FILES)' EXECUTABLE_NAME='$(PROGRAM).i686.exe' WINDOWS_RELEASE=true
endif

.PHONY: windows-x86_64-release
windows-x86_64-release: windows-x86_64
ifeq ($(strip $(WINDOWS_SPECIFIC_RELEASE_FILES)),)
make release PLATFORM='$(WINDOWS_X86_64_RELEASE_NAME_SUFFIX)' EXECUTABLE_NAME='$(PROGRAM).x86_64.exe' WINDOWS_RELEASE=true
else
make release PLATFORM='$(WINDOWS_X86_64_RELEASE_NAME_SUFFIX)' RELEASE_FILES='$(WINDOWS_SPECIFIC_RELEASE_FILES) $(RELEASE_FILES)' EXECUTABLE_NAME='$(PROGRAM).x86_64.exe' WINDOWS_RELEASE=true
endif

.PHONY: linux-i386-deb
linux-i386-deb: linux-i386
rm -rf $(BUILD_DIR)/$(RELEASE_BASE_NAME)-$(VERSION)-$(LINUX_I386_RELEASE_NAME_SUFFIX)
mkdir -p $(BUILD_DIR)/$(RELEASE_BASE_NAME)-$(VERSION)-$(LINUX_I386_RELEASE_NAME_SUFFIX)/usr/bin
mkdir -p $(BUILD_DIR)/$(RELEASE_BASE_NAME)-$(VERSION)-$(LINUX_I386_RELEASE_NAME_SUFFIX)/DEBIAN
cp $(BUILD_DIR)/$(EXECUTABLE_NAME) $(BUILD_DIR)/$(PROGRAM)
cp -r $(BUILD_DIR)/$(PROGRAM) $(BUILD_DIR)/$(RELEASE_BASE_NAME)-$(VERSION)-$(LINUX_I386_RELEASE_NAME_SUFFIX)/usr/bin
cp control-i386 $(BUILD_DIR)/$(RELEASE_BASE_NAME)-$(VERSION)-$(LINUX_I386_RELEASE_NAME_SUFFIX)/DEBIAN/control
dpkg-deb --build $(BUILD_DIR)/$(RELEASE_BASE_NAME)-$(VERSION)-$(LINUX_I386_RELEASE_NAME_SUFFIX)
rm -rf $(BUILD_DIR)/$(RELEASE_BASE_NAME)-$(VERSION)-$(LINUX_I386_RELEASE_NAME_SUFFIX)

.PHONY: linux-x86_64-deb
linux-x86_64-deb: linux-x86_64
rm -rf $(BUILD_DIR)/$(RELEASE_BASE_NAME)-$(VERSION)-$(LINUX_X86_64_RELEASE_NAME_SUFFIX)
mkdir -p $(BUILD_DIR)/$(RELEASE_BASE_NAME)-$(VERSION)-$(LINUX_X86_64_RELEASE_NAME_SUFFIX)/usr/bin
mkdir -p $(BUILD_DIR)/$(RELEASE_BASE_NAME)-$(VERSION)-$(LINUX_X86_64_RELEASE_NAME_SUFFIX)/DEBIAN
cp $(BUILD_DIR)/$(EXECUTABLE_NAME) $(BUILD_DIR)/$(PROGRAM)
cp -r $(BUILD_DIR)/$(PROGRAM) $(BUILD_DIR)/$(RELEASE_BASE_NAME)-$(VERSION)-$(LINUX_X86_64_RELEASE_NAME_SUFFIX)/usr/bin
cp control-x86_64 $(BUILD_DIR)/$(RELEASE_BASE_NAME)-$(VERSION)-$(LINUX_X86_64_RELEASE_NAME_SUFFIX)/DEBIAN/control
dpkg-deb --build $(BUILD_DIR)/$(RELEASE_BASE_NAME)-$(VERSION)-$(LINUX_X86_64_RELEASE_NAME_SUFFIX)
rm -rf $(BUILD_DIR)/$(RELEASE_BASE_NAME)-$(VERSION)-$(LINUX_X86_64_RELEASE_NAME_SUFFIX)

.PHONY: all
all:
make clean-build

make linux-i386-release
make linux-i386-deb EXECUTABLE_NAME='$(PROGRAM).i386'

make linux-x86_64-release
make linux-x86_64-deb EXECUTABLE_NAME='$(PROGRAM).x86_64'

make windows-i686-release
make windows-x86_64-release

make clean
38 changes: 38 additions & 0 deletions build.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@

# Building From Source

In the source directory, you may execute any of the following:

`make deps-apt` - installs the build dependencies required to compile the program.

`make` - creates an executable for x86_64 Linux.

`make clean` - deletes only the generated executable file created by only executing `make`.

`make clean-build` - deletes the generated build directory in it's entirety.

`make all` - **generate all of the following:**

### For Windows 95 OSR 2.5 and above, Pentium CPU minimum (32 bit)

* Windows i686 static executable file.
* Portable Windows i386 release .zip file.

### For Windows x86_64 (64 bit)

* Windows x86_64 static executable file.
* Portable Windows x86_64 release .zip file.

### For Linux 3.2.0 and above, 386 CPU minimum (32 bit)

* Linux i386 static executable file.
* Portable Linux i386 release .zip file.
* Linux i386 release .deb file.

### For Linux 3.2.0 and above, x86_64 (64 bit)

* Linux x86_64 static executable file.
* Portable Linux x86_64 release .zip file.
* Linux x86_64 release .deb file.

All output is found in the `build` directory created in the source directory.
36 changes: 36 additions & 0 deletions changelog.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
# [Open95Keygen](readme.md) -> Changelog

## Version 1.0.2 (2/16/2023)

Changes:

* Fixed a really old non-fatal bug (thanks [@JeanPaulLucien](https://github.com/JeanPaulLucien)!).
* Cleaned up more code and added some comments.

---------------------------------------------------------------------------------------------------

* [open95keygen-1.0.2-windows_x86](https://github.com/alex-free/open95keygen/releases/download/v1.0.2/open95keygen-1.0.2-windows_x86.zip) _For Windows 95 OSR 2.5 Or Newer (32-bit Windows)_

* [open95keygen-1.0.2-windows\_x86\_64](https://github.com/alex-free/open95keygen/releases/download/v1.0.2/open95keygen-1.0.2-windows_x86_64.zip) _For 64 bit Windows_

* [open95keygen-1.0.2-linux_x86](https://github.com/alex-free/open95keygen/releases/download/v1.0.2/open95keygen-1.0.2-linux_x86.zip) _For modern x86 Linux distros_

* [open95keygen-1.0.2-linux\_x86\_64](https://github.com/alex-free/open95keygen/releases/download/v1.0.2/open95keygen-1.0.2-linux_x86_64.zip) _For modern x86_64 Linux distros_

## Version 1.0.1 (2/13/2023)

Changes:

* Rewrote documentation in markdown.
* Rewrote makefile.
* Slight optimizations and better code clarity (it's been 2 years!).

---------------------------------------------------------------------------------------------------

* [open95keygen-1.0.1-windows_x86](https://github.com/alex-free/open95keygen/releases/download/v1.0.1/open95keygen-1.0.1-windows_x86.zip) _For Windows 95 OSR 2.5 Or Newer (32-bit Windows)_

* [open95keygen-1.0.1-windows\_x86\_64](https://github.com/alex-free/open95keygen/releases/download/v1.0.1/open95keygen-1.0.1-windows_x86_64.zip) _For 64 bit Windows_

* [open95keygen-1.0.1-linux_x86](https://github.com/alex-free/open95keygen/releases/download/v1.0.1/open95keygen-1.0.1-linux_x86.zip) _For modern x86 Linux distros_

* [open95keygen-1.0.1-linux\_x86\_64](https://github.com/alex-free/open95keygen/releases/download/v1.0.1/open95keygen-1.0.1-linux_x86_64.zip) _For modern x86_64 Linux distros_
6 changes: 6 additions & 0 deletions control-i386
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
Package: open95keygen
Version: 1.0.3
Maintainer: Alex Free
Architecture: i386
Homepage: https://alex-free.github.io/open95keygen
Description: Windows 95/NT 4.0 Retail/OEM keygen.
6 changes: 6 additions & 0 deletions control-x86_64
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
Package: open95keygen
Version: 1.0.3
Maintainer: Alex Free
Architecture: amd64
Homepage: https://alex-free.github.io/open95keygen
Description: Windows 95/NT 4.0 Retail/OEM keygen.
8 changes: 2 additions & 6 deletions license.txt → license.md
Original file line number Diff line number Diff line change
@@ -1,22 +1,18 @@
BSD 3-Clause License
# BSD 3-Clause License
Copyright (c) 2021-2024, Alex Free

Copyright (c) 2021, 2023, Alex Free
All rights reserved.

Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:

* Redistributions of source code must retain the above copyright notice, this
list of conditions and the following disclaimer.

* Redistributions in binary form must reproduce the above copyright notice,
this list of conditions and the following disclaimer in the documentation
and/or other materials provided with the distribution.

* Neither the name of the copyright holder nor the names of its
contributors may be used to endorse or promote products derived from
this software without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
Expand Down
58 changes: 0 additions & 58 deletions makefile

This file was deleted.

Loading

0 comments on commit a26d612

Please sign in to comment.