User:Lardarse: Difference between revisions

From TetrisWiki
Jump to navigation Jump to search
*>Lardarse
m add debugging flags to the makefile
*>Tepples
m Reverted edits by 217.20.138.129 (Talk); changed back to last version by DIGITAL
 
(11 intermediate revisions by 6 users not shown)
Line 1: Line 1:
Umm... Yeah
Umm... Yeah


I'm me
I'm me.


TODO:
Take a look at [[User:Lardarse/LRS|my idea for a hybrid rotation system]] if you want to see just how crazy I am.
* <strike>Add info about how to compile Lockjaw on Linux</strike> See below
* <strike>Ask tepples if he knows how to use a .diff file</strike> He does, or at least will after a quick RTFM
* Try to understand how the current randomizer system in LJ works
* Find out the numbering of each piece, just in case it's not obvious...
* Add a few randomizers (Stickless 6 memoryless, Expanded 10 memoryless, Teflon 7 bag, Teflon 7 memoryless)
* Try to add a new option in the menu. Initially held piece: Nothing, I, J, L, O, S, T, Z, I3, L3, I2, Random of standard 7, Random of expanded 10
* Investigate the possibility of a scoring system that can give more points for line clears with consecutive pieces, and give a bonus when the pit is cleared
* <strike>Extract the images from the LJ icon into PNG format</strike> Done, but I don't have anywhere to upload them to...
* <strike>Sleep...</strike>


This is the [http://en.wikipedia.org/wiki/Make makefile] that I use to get [[Lockjaw]] to compile in Linux. I am almost certain that it only works for me because I have WINE installed. The more correct way to make it work probably involves setting the correct "target" to build for...
'''Theory portal:'''
At some point, I would to have a proper portal to all of the theory-related pages on the wiki. When I have more time, though. Right now, I think the main ones of interest are these:
* [[Blackjack]] (discussion of randomizers)
* [[Playing forever]]
And some forum threads
* [http://www.tetrisconcept.com/forum/viewtopic.php?t=137 Is bag+SRS sustainable?]
* [http://www.tetrisconcept.com/forum/viewtopic.php?t=401 Randomizer Theory]


<pre>
----
# Makefile for Allegro version of LOCKJAW
 
This is the [http://en.wikipedia.org/wiki/Make makefile] that I use to get [[Lockjaw]] to compile in Linux. I am pretty sure that this will work for all Linux setups.
 
<pre># Makefile for Allegro version of LOCKJAW
#
#
# Copr. 2006-2007 Damian Yerrick
# Copr. 2006-2007 Damian Yerrick
Line 36: Line 36:


EXE := lj
EXE := lj
CFLAGS := -Wall -O2 -std=gnu99 -g3
CFLAGS := -Wall -O2 -std=gnu99 -DWITH_REPLAY=1 -DHAS_FPU
CC := gcc
CC := gcc
LD := gcc
LD := gcc
LDFLAGS := -Wall -mwindows
LDFLAGS := -Wall -s
srcdir := src
srcdir := src
objdir := obj/win32
objdir := obj/unix


MUSICOBJS := $(objdir)/ljvorbis.o  
MUSICOBJS := $(objdir)/ljvorbis.o  
Line 48: Line 48:
LDLIBS := -ljpgal -lalleg
LDLIBS := -ljpgal -lalleg
DEPOBJS := $(objdir)/ljpc.o $(objdir)/lj.o $(objdir)/ljplay.o $(objdir)/pcjoy.o $(objdir)/gimmicks.o $(objdir)/wktables.o $(objdir)/options.o $(objdir)/debrief.o $(objdir)/macro.o $(objdir)/ljreplay.o $(objdir)/ljmusic.o $(MUSICOBJS)
DEPOBJS := $(objdir)/ljpc.o $(objdir)/lj.o $(objdir)/ljplay.o $(objdir)/pcjoy.o $(objdir)/gimmicks.o $(objdir)/wktables.o $(objdir)/options.o $(objdir)/debrief.o $(objdir)/macro.o $(objdir)/ljreplay.o $(objdir)/ljmusic.o $(MUSICOBJS)
.PHONY: clean lj.gba lj.nds


# Objects
# Objects
Line 53: Line 55:
$(EXE): $(DEPOBJS)
$(EXE): $(DEPOBJS)
$(LD) $(LDFLAGS) $^ $(MUSICLIBS) $(LDLIBS) -o $@
$(LD) $(LDFLAGS) $^ $(MUSICLIBS) $(LDLIBS) -o $@
all: $(EXE) lj.gba lj.nds
lj.gba:
make -f gbamakefile $@
lj.nds:
make -f dsmakefile $@


# Compilation rules
# Compilation rules
Line 68: Line 78:


# Cleanup rules
# Cleanup rules
.PHONY: clean


clean:
clean:
Line 75: Line 84:
</pre>
</pre>


Based on the makefile for 0.28. Available under the GPL.
Based on the makefile for 0.36 and available under the GPL. Creating a diff against the makefile in 0.36 and hen applying it to any future version should create a makefile that should work with that version, in case the makefile changes. The main changes are that it no longer tries to include an icon, so all references to the icon resource file and to windres.exe are removed. It also changes the executable name and the folder used for object files, and removes an option from the linker phase that is only necessary when compiling in Windows.


Note to self: Pasting anything with DOS line feeds in Linux is gonna make it look screwy...<br>
I will look to update this for 0.39 when I switch to Linux next (probably tonight).
Note 2: grrrrrr, I keep forgetting...

Latest revision as of 16:08, 26 January 2008

Umm... Yeah

I'm me.

Take a look at my idea for a hybrid rotation system if you want to see just how crazy I am.

Theory portal: At some point, I would to have a proper portal to all of the theory-related pages on the wiki. When I have more time, though. Right now, I think the main ones of interest are these:

And some forum threads


This is the makefile that I use to get Lockjaw to compile in Linux. I am pretty sure that this will work for all Linux setups.

# Makefile for Allegro version of LOCKJAW
#
# Copr. 2006-2007 Damian Yerrick
# 
# This work is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
# 
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
# 
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA

EXE := lj
CFLAGS := -Wall -O2 -std=gnu99 -DWITH_REPLAY=1 -DHAS_FPU
CC := gcc
LD := gcc
LDFLAGS := -Wall -s
srcdir := src
objdir := obj/unix

MUSICOBJS := $(objdir)/ljvorbis.o 
MUSICLIBS := -laldmb -ldumb -lvorbisfile -lvorbis -logg

LDLIBS := -ljpgal -lalleg
DEPOBJS := $(objdir)/ljpc.o $(objdir)/lj.o $(objdir)/ljplay.o $(objdir)/pcjoy.o $(objdir)/gimmicks.o $(objdir)/wktables.o $(objdir)/options.o $(objdir)/debrief.o $(objdir)/macro.o $(objdir)/ljreplay.o $(objdir)/ljmusic.o $(MUSICOBJS)

.PHONY: clean lj.gba lj.nds

# Objects

$(EXE): $(DEPOBJS)
	$(LD) $(LDFLAGS) $^ $(MUSICLIBS) $(LDLIBS) -o $@

all: $(EXE) lj.gba lj.nds

lj.gba:
	make -f gbamakefile $@

lj.nds:
	make -f dsmakefile $@

# Compilation rules

$(objdir)/%.o: $(srcdir)/%.c
	$(CC) $(CFLAGS) -MMD -c -o $@ $<
	@cp $(objdir)/$*.d $(objdir)/$*.P; \
	sed -e 's/#.*//' -e 's/^[^:]*: *//' -e 's/ *\\$$//' \
	-e '/^$$/ d' -e 's/$$/ :/' < $(objdir)/$*.d >> $(objdir)/$*.P; \
	rm -f $(objdir)/$*.d

# Header dependencies

-include $(DEPOBJS:%.o=%.P)

# Cleanup rules

clean:
	-rm $(objdir)/*.o
	-rm $(objdir)/*.P

Based on the makefile for 0.36 and available under the GPL. Creating a diff against the makefile in 0.36 and hen applying it to any future version should create a makefile that should work with that version, in case the makefile changes. The main changes are that it no longer tries to include an icon, so all references to the icon resource file and to windres.exe are removed. It also changes the executable name and the folder used for object files, and removes an option from the linker phase that is only necessary when compiling in Windows.

I will look to update this for 0.39 when I switch to Linux next (probably tonight).